jueves, 2 de julio de 2009

[HowTo] Extraer líneas en blanco de un fichero en bash

También publicado en universo emergya.

En ocasiones nos puede hacer falta quitar las líneas en blanco de un fichero, buscando por internet, encontré dos formas, una con sed y otra con awk y gracias a mi amigo y compañero de trabajo rcmorano, una tercera con grep. Vamos a ello:

En primer lugar vamos a crear un fichero que cumpla las carácterísticas necesarias para hacer las pruebas llamado "fichero" en /tmp. Podemos copiar el que pongo a continuación:


Linea 1
Linea 2

Linea 4

Linea 6
Linea 7


Linea 10


Notesé que las líneas en blanco se cuentan, es decir las líneas 3, 5, 8 y 9 están en blanco (salto de línea).

Con el comando sed: sed '/^[ ]*$/d' /ruta/al/fichero


$ sed '/^[ ]*$/d' /tmp/fichero
Linea 1
Linea 2
Linea 4
Linea 6
Linea 7
Linea 10


Con el comando awk: awk 'NF' /ruta/al/fichero


$ awk 'NF' /tmp/fichero
Linea 1
Linea 2
Linea 4
Linea 6
Linea 7
Linea 10


Con el comando grep: grep -v ^$ /ruta/al/fichero


$ grep -v ^$ /tmp/fichero
Linea 1
Linea 2
Linea 4
Linea 6
Linea 7
Linea 10


Como podemos comprobar en de las tres formas se omiten las líneas 3, 5, 8 y 9 que son las que están en blanco.

No hay comentarios: