2016-06-20 11 views
0

Ich verwendete sed '/pattern/d' file > newfile, um einige Zeilen in einer Textdatei zu entfernen, aber es gibt viele leere Zeilen in der neuen Datei übrig.Leerzeilen in neue Datei geschrieben von sed

Wie kann ich den Befehl ändern, um Leerzeilen zu vermeiden?

+0

Überprüfen Sie Ihre Datei auf Sonderzeichen: 'cat -A file' oder' cat -v file' – Cyrus

+0

@Cyrus '-A' zeigt viele leere Zeilen in der Originaldatei. '-v' druckt nur den Text. – Lee

+2

Mögliches Duplikat von [Leere Zeilen mit SED löschen] (http://stackoverflow.com/questions/16414410/delete-empty-lines-using-sed) – hek2mgl

Antwort

0
sed '/^$/d' file >newfile 

in einer Datei leere Zeilen löschen ... wird es für Sie tun.

0

Der Befehl, den Sie verwenden, löscht alle Zeilen, die Sie löschen möchten, hinterlässt jedoch die Leerzeilen, die bereits in der ursprünglichen Datei vorhanden sind. So löschen Sie diese auch einfach einen zweiten Filter auf den Eingang gelten:

$ sed -e '/pattern/d' -e '/^[:blank:]*$/d' <file >newfile 

Der zweite Filter wird Zeilen entfernen, die leer sind, oder dass enthält nur Leerzeichen (dh, dass „leere“ in ihrem Aussehen sind).