hallo,
ich möchte mit dem befehl
sed -e '/^ *$/d' eingabeDatei > ausgabeDatei
alle leeren Zeilen löschen, nur funktioniert dies nicht. In der neuen Datei sind immer noch alle Leerzeilen vorhanden.
Versteh nicht warum das nicht klappt....
Anmeldungsdatum: Beiträge: 461 |
hallo, ich möchte mit dem befehl sed -e '/^ *$/d' eingabeDatei > ausgabeDatei alle leeren Zeilen löschen, nur funktioniert dies nicht. In der neuen Datei sind immer noch alle Leerzeilen vorhanden. Versteh nicht warum das nicht klappt.... |
Anmeldungsdatum: Beiträge: 2159 |
schlachtrufe hat geschrieben:
Weil du damit nur Zeilen löscht die mehrere Lerzeichen enthalten. Wenn eine Zeile ein Tabulator etc. enthält dann matcht es nicht mehr. Korrekt wäre wenn du "\s" in der Regex nutzt. /^\s*$/ |
(Themenstarter)
Anmeldungsdatum: Beiträge: 461 |
cool, es klappt. unter windows funktioniert allerdings genau der sed-befehl (den ich oben hingeschrieben habe) mit genau der gleichen datei, die ich auch unter ubuntu getestet habe und dort werden alle leerzeilen gelöscht. |
Anmeldungsdatum: Beiträge: 2159 |
schlachtrufe hat geschrieben:
\s steht für Whitespace und ist eine Zeichenklasse. Diese zeichenklasse enthält alle Whitespaces sprich zeichen die bei einem Druck keine "Tinte" verbrauchen würden. Das sind Leerzeichen, Tabulatoren, Verticale Tabulatoren, Newlines, Carriage Return, non-breakable space und paar weitere Unicode zeichen. Das mit dem Unicode hängt allerdiengs vom Tool ab.
Dann ist die Datei entweder unterschiedlich oder sed unter Windows ist kaputt. |