Jens Kubieziel schrieb:
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)



Antwort per Email an