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.