Puede tener espacios o tabulaciones en su línea "vacía". Usar clases POSIX con sed
para eliminar todas las líneas que contienen solo espacios en blanco:
sed '/^[[:space:]]*$/d'
Una versión más corta que usa ERE, por ejemplo con gnu sed:
sed -r '/^\s*$/d'
(Tenga en cuenta que sed NO apoyo PCRE.)
me falta el awk
solución:
awk 'NF' file
Que devolvería:
xxxxxx
yyyyyy
zzzzzz
¿Como funciona esto? Desde NF
significa "número de campos", esas líneas que están vacías tienen 0 campos, por lo que awk evalúa 0 como Falso y no se imprime ninguna línea; sin embargo, si hay al menos un campo, la evaluación es True y hace awk
realiza su acción predeterminada:imprimir la línea actual.
sed
'/^[[:space:]]*$/d'
'/^\s*$/d'
'/^$/d'
-n '/^\s*$/!p'
grep
.
-v '^$'
-v '^\s*$'
-v '^[[:space:]]*$'
wow
/./
'NF'
'length'
'/^[ \t]*$/ {next;} {print}'
'!/^[ \t]*$/'
sed '/^$/d'
debería estar bien, ¿espera modificar el archivo en su lugar? Si es así, debe usar el -i
bandera.
Tal vez esas líneas no estén vacías, así que si ese es el caso, mire esta pregunta Eliminar líneas vacías de archivos txt, eliminar espacios al principio y al final de la línea. Creo que eso es lo que está tratando de lograr.