On Sun, May 02, 2004 at 01:01:54PM +0200, Bjoern Schmidt wrote:
Roland M. Kruggel schrieb:
ich habe eine Textdatei an deren Ende eine undefinierte Anzahl von Leerzeilen ist. Ich m�chte diese Leerzeilen alle l�schen.
Lustig dieser Thread ;) Versuchs mal damit:
sed ':a;/^\n*$/{$d;N;ba;}'
| | | | | | | | | |_ springe zum Label a | | | |_ n�chste Zeile an den Speicher h�ngen | | |_ letzte Zeile l�schen | |_ Zeile, die am Beginn einen Zeilenumbruch enth�lt, finden |_ Label a anlegen
Wenn ich das richtig verstehe, werden die letzten leeren Zeilen auf eine zusammen gefasst (Also der Form: "\n\n\n") und diese Zeile wird gel�scht.
Genau Richtig. Der Alg. liest eine Zeile in den Pattern Space. Ist diese Zeile nicht leer '/^\n*$' ( steht f�r leer ), wird der Inhalt vom PS ausgegeben und die n�chste Zeile bearbeitet. Ist die Zeile aber leer wird sie gel�scht '$d', falls es die letzte Zeile der Datei ist. Ist es nicht die letzte Zeile der Datei, wird die n�chste Zeile in dem PS an die zuvor gelesene Zeile angeh�ngt 'N' und ein branch nach a 'ba;' bzw. 'b a;' ausgef�hrt. Wenn jetzt eine nicht leere Zeile gelesen wird, so wird der Inhalt des PS ausgegeben und sed f�hrt wie oben gesagt mit der n�chsten Zeile fort.
-- Mit freundlichen Gruessen Bjoern Schmidt
--
Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/
Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)

