Je veux supprimer toutes les lignes vides d'un fichier. Même si la ligne contient des espaces ou des tabulations, elle doit également être supprimée.
Réponse acceptée :
Juste grep pour les non-blancs :
grep '[^[:blank:]]' < file.in > file.out
[:blank:] , à l'intérieur des plages de caractères ([...] ), est appelée une classe de caractères POSIX. Il y en a quelques-uns comme [:alpha:] , [:digit:] … [:blank:] correspond à l'espace blanc horizontal (dans les paramètres régionaux POSIX, c'est l'espace et la tabulation, mais dans d'autres paramètres régionaux, il pourrait y en avoir plus, comme tous les caractères d'espacement horizontal Unicode dans les paramètres régionaux UTF8) tandis que [[:space:]] correspond aux caractères d'espace blancs horizontaux et verticaux (identique à [:blank:] plus des choses comme l'onglet vertical, le saut de page…).
grep '[:blank:]'
Renverrait les lignes qui contiennent l'un des caractères, : , b , l , a , n ou k . Les classes de caractères ne sont reconnues que dans [...] , et ^ dans [...] nie l'ensemble. Donc [^[:blank:]] signifie n'importe quel caractère sauf les blancs.