Linux: borrado de líneas vacías de un fichero con sed

Linux - Borrar líneas vacías de un fichero

¿Tienes Linux y quieres eliminar líneas vacías de un archivo pero no sabes cómo? Este artículo responderá a esa pregunta utilizando dos comandos muy comunes: grep y sed. Veremos cómo mostrar el contenido de un archivo excluyendo las líneas vacías o comentadas, y luego veremos cómo eliminar las líneas vacías y comentadas de un archivo. Para eliminar líneas, utilice Tenga cuidado, ya que esta acción es irreversible a menos que tenga una copia de seguridad o una copia del archivo.

Este método se basa en el uso de los comandos grep y sed, por lo que funcionará en una gran variedad de distribuciones de Linux, incluidas las más comunes: Ubuntu, Debian, CentOS, Rocky Linuxetc.

1. Visualizar el contenido de un fichero sin líneas vacías

Empecemos utilizando un archivo como ejemplo. En mi caso, será el archivo " /tmp/archivo.txt" con el siguiente contenido:

Linux - Ejemplo de fichero con líneas vacías y comentarios

En la imagen anterior, las líneas vacías y comentadas son claramente visibles. Utilizando el comando 'cat', ahora podemos mostrar el contenido del archivo y filtrar la salida utilizando 'grep'.

  • Afficher le contenu du fichier sans les lignes vides
cat /tmp/file.txt | grep .
  • Afficher le contenu du fichier sans les lignes commentées (mais avec les lignes vides)

Este filtro elimina todas las líneas que empiezan por el carácter "#", que corresponde a comentarios.

cat /tmp/file.txt | grep -v ^\#
  • Afficher le contenu du fichier sans les lignes vides et sans les lignes commentées
cat /tmp/file.txt | grep . | grep -v ^\#

Estos tres controles son formidables y funcionan muy bien:

Linux - Uso de grep para evitar mostrar líneas vacías

Pasemos a la segunda parte de este tutorial, donde eliminaremos estas líneas del archivo.

2. Borrar líneas vacías de un fichero con sed

El comando sed es una forma muy potente de modificar el contenido de los ficheros en Linux, utilizando expresiones regulares. Con él, podemos borrar todas las líneas vacías de nuestro fichero sin alterar las demás líneas.

  • Supprimer les lignes vides du fichier
sed -i '/^$/d' /tmp/archivo.txt

He aquí el resultado sobre el expediente que hemos maltratado desde el principio:

Linux - Uso de sed para eliminar líneas vacías de un archivo .jpg
  • Supprimer les lignes commentées du fichier
sed -i '/^#/d' /tmp/archivo.txt
  • Supprimer les lignes vides et commentées du fichier

Al igual que con 'grep', podemos combinar las dos reglas para eliminar tanto las líneas vacías como las líneas comentadas. Por último, puede optar por utilizar una u otra regla, o ambas a la vez.

sed -i -e '/^#/d' -e '/^$/d' /tmp/archivo.txt

Gracias a este artículo del buzón de tutoriales informáticos, podrás filtrar el contenido de tus archivos Linux. Filtrar la visualización es útil para reducir la salida en la consola de modo que se vea más pequeña en la pantalla. Borrar es útil cuando necesitas hacer un cambio masivo en un archivo, por ejemplo un conjunto de datos como un archivo en formato CSV.

Recursos :

También te podría gustar...

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *