Voglio rimuovere tutte le righe vuote da un file. Anche se la riga contiene spazi o tabulazioni, dovrebbe anche essere rimossa.
Risposta accettata:
Solo grep
per non spazi vuoti:
grep '[^[:blank:]]' < file.in > file.out
[:blank:]
, all'interno di intervalli di caratteri ([...]
), è chiamata classe di caratteri POSIX. Ce ne sono alcuni come [:alpha:]
, [:digit:]
… [:blank:]
corrisponde allo spazio bianco orizzontale (nelle impostazioni locali POSIX, ovvero spazio e tabulazione, ma in altre versioni potrebbero essercene di più, come tutti i caratteri di spaziatura orizzontale Unicode nelle versioni locali UTF8) mentre [[:space:]]
corrisponde agli spazi bianchi orizzontali e verticali (come [:blank:]
oltre a cose come la scheda verticale, il feed dei moduli...).
grep '[:blank:]'
Restituirebbe le righe che contengono uno qualsiasi dei caratteri, :
, b
, l
, a
, n
o k
. Le classi di caratteri sono riconosciute solo all'interno di [...]
e ^
entro [...]
nega l'insieme. Quindi [^[:blank:]]
indica qualsiasi carattere tranne quelli vuoti.