editor de transmisión (sed ) es una herramienta importante cuando trabaja analizando y transformando texto en sus sistemas basados en nix. Se utiliza para buscar, filtrar, sustituir texto y manipular texto, como inserción, eliminación, reemplazo y búsqueda en archivos de texto.
[ También te puede interesar:Cómo usar Sed para buscar y reemplazar cadenas en archivos ]
En la mayoría de las distribuciones de Linux, el comando sed viene preinstalado y puede verificarlo con los siguientes comandos, que mostrarán la ubicación binaria del comando y la versión.
$ which sed $ sed --version
Aquí, en este artículo, le mostraré cómo eliminar líneas de un archivo usando el comando sed con la ayuda de un archivo de muestra que contiene 7 líneas. Voy a utilizar este archivo con fines demostrativos.
$ cat testfile.txt First line second line Third line Fourth line Fifth line Sixth line SIXTH LINE
Cómo eliminar una línea de un archivo
Para eliminar la línea de un archivo, puede usar el siguiente comando. Tienes que sustituir 'N'
con el número de línea y 'd'
es eliminar la línea.
$ sed 'Nd' testfile.txt
Si tiene que eliminar la cuarta línea del archivo, debe sustituir N=4
.
$ sed '4d' testfile.txt
Cómo eliminar la primera y la última línea de un archivo
Puede eliminar la primera línea de un archivo usando la misma sintaxis que se describe en el ejemplo anterior. Tienes que poner N=1
que eliminará la primera línea.
$ sed '1d' testfile.txt
Para eliminar la última línea de un archivo usando el siguiente comando con ($)
signo que denota la última línea de un archivo.
$ sed '$d' testfile.txt
Cómo eliminar un rango de líneas de un archivo
Puede eliminar un rango de líneas de un archivo. Supongamos que desea eliminar las líneas de la 3 a la 5, puede usar la siguiente sintaxis.
M
– número de línea inicialN
– Número de línea final
$ sed 'M,Nd' testfile.txt
Para eliminar realmente, use el siguiente comando para hacerlo.
$ sed '3,5d' testfile.txt
Puedes usar !
símbolo para negar la operación de eliminación. Esto eliminará todas las líneas excepto el rango dado (3-5).
$ sed '3,5!d' testfile.txt
Cómo quitar líneas en blanco de un archivo
Para eliminar todas las líneas en blanco de un archivo, ejecute el siguiente comando. Un punto importante a tener en cuenta es que al usar este comando, las líneas vacías con espacios no se eliminarán. He agregado líneas vacías y líneas vacías con espacios en mi archivo de prueba.
$ cat testfile.txt First line second line Third line Fourth line Fifth line Sixth line SIXTH LINE
$ sed '/^$/d' testfile.txt
En la imagen de arriba, puede ver que las líneas vacías se eliminan, pero las líneas que tienen espacios no se eliminan. Para eliminar todas las líneas, incluidos los espacios, puede ejecutar el siguiente comando.
$ sed '/^[[:space:]]*$/d' testfile.txt
[ También te puede interesar:Cómo eliminar líneas vacías en archivos usando Grep, Sed y Awk ]
Cómo eliminar líneas que comienzan con palabras en un archivo
Para eliminar una línea que comienza con una palabra determinada, ejecute el siguiente comando con ^
El símbolo representa el comienzo de la palabra seguido de la palabra real.
$ sed '/^First/d' testfile.txt
Para eliminar una línea que termina con una determinada palabra, ejecute el siguiente comando. La palabra que se eliminará seguida de $
el símbolo eliminará líneas.
$ sed '/LINE$/d' testfile.txt
Cómo realizar cambios directamente en un archivo
Para hacer los cambios directamente en el archivo usando sed tienes que pasar -i
bandera que hará los cambios directamente en el archivo.
$ sed -i '/^[[:space:]]*$/d' testfile.txt
Hemos llegado al final del artículo. El sed El comando jugará un papel importante cuando esté trabajando en la manipulación de cualquier archivo. Cuando se combina con otras utilidades de Linux como awk , grep puedes hacer más cosas con sed .