Ich möchte alle leeren Zeilen aus einer Datei entfernen. Auch wenn die Zeile Leerzeichen oder Tabulatoren enthält, sollten sie ebenfalls entfernt werden.
Akzeptierte Antwort:
Einfach grep für Nicht-Leerzeichen:
grep '[^[:blank:]]' < file.in > file.out
[:blank:] , innerhalb von Zeichenbereichen ([...] ) wird als POSIX-Zeichenklasse bezeichnet. Es gibt einige wie [:alpha:] , [:digit:] … [:blank:] stimmt mit horizontalem Leerraum überein (in der POSIX-Sprachumgebung sind das Leerzeichen und Tabulatoren, aber in anderen Sprachumgebungen könnten mehr sein, wie alle horizontalen Unicode-Abstandszeichen in UTF8-Sprachumgebungen), während [[:space:]] entspricht horizontalen und vertikalen Leerzeichen (dasselbe wie [:blank:] plus Dinge wie vertikale Tabulatoren, Seitenvorschub…).
grep '[:blank:]'
Würde die Zeilen zurückgeben, die eines der Zeichen enthalten, : , b , l , a , n oder k . Zeichenklassen werden nur innerhalb von [...] erkannt , und ^ innerhalb von [...] negiert die Menge. Also [^[:blank:]] bedeutet jedes Zeichen außer den Leerzeichen.