Quiero eliminar todas las líneas vacías de un archivo. Incluso si la línea contiene espacios o tabulaciones, también debe eliminarse.
Respuesta aceptada:
Solo grep
para no espacios en blanco:
grep '[^[:blank:]]' < file.in > file.out
[:blank:]
, dentro de rangos de caracteres ([...]
), se denomina clase de caracteres POSIX. Hay algunos como [:alpha:]
, [:digit:]
… [:blank:]
coincide con el espacio en blanco horizontal (en la configuración regional POSIX, eso es espacio y tabulación, pero en otras configuraciones regionales podría haber más, como todos los caracteres de espaciado horizontal Unicode en configuraciones regionales UTF8) mientras que [[:space:]]
coincide con caracteres de espacio en blanco horizontales y verticales (igual que [:blank:]
además de cosas como tabulación vertical, alimentación de formulario...).
grep '[:blank:]'
Devolvería las líneas que contienen cualquiera de los caracteres, :
, b
, l
, a
, n
o k
. Las clases de caracteres solo se reconocen dentro de [...]
y ^
dentro de [...]
niega el conjunto. Así que [^[:blank:]]
significa cualquier caracter excepto los en blanco.