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.