Ich habe einige Textdateien, mit denen ich Notizen mache - einfach nur Text, normalerweise nur mit cat >> file
. Gelegentlich verwende ich ein oder zwei Leerzeilen (einfach zurück - das Zeichen für die neue Zeile), um ein neues Thema / eine neue Gedankenlinie anzugeben. Am Ende jeder Sitzung füge ich vor dem Schließen der Datei mit Ctrl+ Dnormalerweise viele (5-10) Leerzeilen (Return-Taste) hinzu, um die Sitzungen zu trennen.
Das ist natürlich nicht sehr klug, aber es funktioniert für mich zu diesem Zweck. Ich habe jedoch sehr viele unnötige Leerzeilen, daher suche ich nach einer Möglichkeit, die (meisten) zusätzlichen Zeilen zu entfernen. Gibt es einen Linux-Befehl (cut, paste, grep, ...?), Der mit ein paar Optionen direkt verwendet werden kann? Oder hat jemand eine Idee für ein sed-, awk- oder perl-Skript (auch in jeder anderen Skriptsprache, obwohl ich sed- oder awk-Skripts vorziehen würde), das tun würde, was ich will? Etwas in C ++ zu schreiben (was ich eigentlich selbst tun könnte), scheint einfach übertrieben.
Fall 1: Was ich brauche, ist ein Skript / Befehl, der mehr als zwei (3 oder mehr) aufeinanderfolgende Leerzeilen entfernt und durch nur zwei Leerzeilen ersetzt. Es wäre aber auch schön, wenn man mehr als eine Zeile (2 oder mehr) entfernen und / oder mehrere Leerzeilen durch nur eine Leerzeile ersetzen könnte.
Fall 2: Ich könnte auch ein Skript / einen Befehl verwenden, mit dem eine einzelne Leerzeile zwischen zwei Textzeilen entfernt wird, aber mehrere Leerzeilen unverändert bleiben (obwohl das Entfernen einer der Leerzeilen auch akzeptabel wäre).
vim
und sollte Leerzeilen durch eine Leerzeile ersetzen ).