Shell Scripting

Leerzeilen aus einer ASCII Datei entfernen

Um bei einer Dateianzeige die leeren Zeilen zu entfernen, gibt es verschiedene Möglichkeiten. Ich stelle hier 2 Methoden vor.

Variante 1 verwendet den Unix Befehl grep

grep -v ^$

Variante 2 verwender das Kommando awk.

awk ' NF>0 '

Beispiel für grep
Das verwendete Pattern setzt sich aus einem ^ für den Zeilenanfang und einem $ für das Zeilenende zusammen. Leerzeilen setzen sich ja, bei genauer Betrachtung, aus einem Zeilenanfang sofort gefolgt von einem Zeilenende zusammen.

echo "ABCDEF \n\n GHIJK \n\n\nXYZ" | grep -v ^$

ABCDEF
GHIJK
XYZ

Beispiel für awk

Beim awk wird die interne Variable NF verwendet. NF enth%auml;lt die Anzahl der Felder der aktuellen Zeile. Leerzeilen haben 0 Felder, so das mit der Ausgabe aller Zeilen mit mehr als 0 Feldern alle Leerzeilen entfernt werden.

echo "ABCDEF \n\n GHIJK \n\n\nXYZ" | awk ' NF>0 '

ABCDEF
GHIJK
XYZ