Hi Leute, ich hab da mal ne Frage zum sed. Ich hab ein Datefile: ______________________ xxy abbdbba sdasda asdasdasd yyy asdasd asda asdasdasd zzz asdasd asdasd asd _____________________ (man bemerke die einzelen Pragraphen sind duch Leerzeilen aufgeteilt) Wenn ich nun einen bestimmten Paragraphen des Datafile ausgeben möchte. Kann ich auf der Shell Folgendes eingeben : cat datafile | sed -e '/./{H;$!d;}' -e 'x;/yyy/!d' (das gibt mir den Paragraphen yyy aus) : _______________ yyy asdasd asda asdasdasd _______________ wenn ich das Ganze in einem Shellscript mache : echo $(cat $DATAFILE | sed -e '/./{H;$!d;}' -e 'x;/yyy/!d') Dann kommt folgendes raus : _______________________________ yyy asdasd asda asdasdasd _______________________________ Wie komme ich zu meinem "\n" ? Ich möchte den gleichen Output wie auf der Shell haben !!! Thanks in advance. Mike -- GMX - Die Kommunikationsplattform im Internet. http://www.gmx.net
...
wenn ich das Ganze in einem Shellscript mache :
echo $(cat $DATAFILE | sed -e '/./{H;$!d;}' -e 'x;/yyy/!d')
Dann kommt folgendes raus : _______________________________ yyy asdasd asda asdasdasd _______________________________
Wie komme ich zu meinem "\n" ? Ich möchte den gleichen Output wie auf der Shell haben !!!
hat mit der Umgebungsvariablen IFS zu tun. Setze mal ein IFS=, vor die angegebene Zeile... Achtung, kann sein, dass sonstwo im Skript das korrekte IFS sein muss (Standard: space tab newline, also IFS=$' \t\n' oder so... :-) Kannst ja nochein wenig herumexperimentieren... /Christian
participants (2)
-
Christian Hernmarck
-
Mike Gerald