495 Stimmen

Löschen Sie leere Zeilen mit sed

Ich versuche, leere Zeilen mit sed zu löschen:

sed '/^$/d'

aber bisher hatte ich kein Glück damit.

Zum Beispiel habe ich diese Zeilen:

xxxxxx

yyyyyy

zzzzzz

und ich möchte es so haben:

xxxxxx
yyyyyy
zzzzzz

Was sollte der Code dafür sein?

3voto

Claes Wikner Punkte 1415

Dies funktioniert auch in awk.

awk '!/^$/' file
xxxxxx
yyyyyy
zzzzzz

2voto

Lowbit Punkte 21

Sie können das auch mit "grep" so machen:

egrep -v "^$" file.txt

1voto

justincbagley Punkte 11

Meine spezifische Antwort in bash ist, die Verwendung des perl Substitutionsoperators mit dem globalen Muster g Flag dafür zu empfehlen, wie folgt:

$ perl -pe s'/^\n|^[\ ]*\n//g' $file
xxxxxx
yyyyyy
zzzzzz

Diese Antwort zeigt, wie man berücksichtigt, ob die leeren Zeilen Leerzeichen enthalten ([\ ]*), sowie die Verwendung von | zur Trennung mehrerer Suchbegriffe/Felder. Getestet auf macOS High Sierra und CentOS 6/7.

Zur Information, der ursprüngliche Code des Fragestellers sed '/^$/d' $file funktioniert einwandfrei im bash Terminal auf macOS High Sierra und CentOS 6/7 Linux in einem hochleistungsfähigen Supercomputing-Cluster.

0voto

Kpym Punkte 3339

Wenn Sie moderne Rust-Tools verwenden möchten, können Sie Folgendes in Betracht ziehen:

  • ripgrep:
    • cat datafile | rg '.' Zeile mit Leerzeichen wird als nicht leer angesehen
    • cat datafile | rg '\S' Zeile mit Leerzeichen wird als leer angesehen
    • rg '\S' datafile Zeile mit Leerzeichen wird als leer angesehen (-N kann hinzugefügt werden, um Zeilennummern für die Anzeige auf dem Bildschirm zu entfernen)
  • sd
    • cat datafile | sd '^\n' '' Zeile mit Leerzeichen wird als nicht leer angesehen
    • cat datafile | sd '^\s*\n' '' Zeile mit Leerzeichen wird als leer angesehen
    • sd '^\s*\n' '' datafile inline bearbeiten

-1voto

Nilesh Shukla Punkte 11

Mit dem vim-Editor leere Zeilen entfernen

:%s/^$\n//g

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X