GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo quitar líneas de un archivo usando el comando Sed

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 inicial
  • N – 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 .


Linux
  1. Uso de Google Drive desde la línea de comandos de Linux

  2. ¿Eliminar eficientemente el primer par de líneas de un archivo de texto?

  3. ¿Cómo eliminar varias líneas aleatorias de un archivo de texto usando Sed?

  4. Eliminación de líneas específicas de un archivo en la línea de comandos de Linux

  5. Cómo usar sed para eliminar las últimas n líneas de un archivo

Cómo crear un archivo en Linux usando Terminal/Línea de comando

Cómo eliminar archivos y directorios usando la línea de comandos de Linux

Cómo enviar un correo electrónico con un archivo adjunto desde la línea de comandos

Eliminar líneas pares o impares de un archivo de texto

¿Cómo inserto texto en la primera línea de un archivo usando sed?

¿Cómo borrar el contenido de un archivo desde la línea de comando?