Hallo, Am Mon, 02 Nov 2009, Andre Tann schrieb:
ich möchte gerne mit sed
- Die Zeilenumbrüche aller nichtleeren Zeilen entfernen und durch Tabs ersetzen
- Die Zeilenumbrüche aller leeren Zeilen stehen lassen.
Warum funktioniert das nicht:
sed -e ':;s#\(?*\)\n#\1\t#;N;T' ^ ^^- steht anfangs nicht mit im pattern-space ` das steht hier für ein '?'. Nicht für ein bel. Zeichen. Und auch \(.*\) passt auf die leere Zeile. Du meinst \(.\+\) bei GNU sed, sonst \(..*\)
Ausserdem: T kennt mein aelteres GNU sed nicht und hier ist es auch ueberfluessig, da Label/Sprung eh am Anfang/Ende des Scriptes stehen. Generell ist sed nicht gut dafür geeignet, mehrzeiliges zu bearbeiten. Nimm besser perl, damit kannst du Dateiweise arbeiten. -dnh -- If you're looking for me, I'll be the quivering pile of jelly wobbling pitifully in the corner over there. -- Stuart Lamble, in the SDM -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org