PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ausgabe Zeile für Zeile Bearbeiten (Leerzeichen nicht beachten)?



wdsl
03-01-2007, 10:07
Hi,
ich bekomme von einem Programm Code zurück der hat jetzt mehrere Zeilen und in jeder Zeile mehrere Worte.

z.B.


bla bla bla bla
hallo hallo bla
foo bar baz quux quuux
ene mene mu und raus bist du
usw etc


Bei ner Schleife



for BLA in $BLAA
do
echo "$BLA"
done


erkennt er ja jedes Leerzeichen und denkt sich daraus ne List. In meinem Fall ist allerdings eine Zeile immer zusammenhängend.

So wie kann ich das anstellen, dass wenn er $BLA ausgibt immer die ganze Zeile ausgibt bzw er die ganze Zeile als solches hernimmt?

vielen Dank
wdsl

Waxolunist
03-01-2007, 13:23
Am einfachsten du änderst das IFS.

Also einfach



IFSBAK=$IFS
IFS="
"

for BLA in $BLAA
do
echo "$BLA"
done

IFS=$IFSBAK

Das IFSBAK ist nicht notwendig, aber falls das Skript länger wird, doch zu empfehlen.

wdsl
03-01-2007, 13:58
nette Sache vielen vielen Dank.

Kleine Frage noch weist du warum:


IFS="
"

nicht das gleich ist wie:


IFS="\n"

mfg
wdsl

Waxolunist
03-01-2007, 14:24
Das ist eine Frage, die hab ich mir selbst schon viele Male gestellt habe, aber im Endeffekt war es einfach nur eine Tatsache, die ich wohl akzeptieren bzw. als gegeben hinnehmen muss. Es ist nicht alles logisch wo ein Pinguin oder Teufel drauf ist.

wdsl
03-01-2007, 15:27
ok trotzdem danke.

mfg
wdsl