PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : bash: mal wieder string zerlegen



meinereinerseiner
13-03-2007, 16:20
hi,

wie kann ich denn eine string:
"email name doedel@idt.de doedel haie"
so zerlegen, das ich in
$1 email
$2 name
$3 doedel@idt.de
$4 doedel haie

bekomme?

also die ersten 3 sind ja einfach über via awk zu bekommen, aber wie sag ichs
ihm, das alles was nach $3 kommt direkt in $4 gehört, er also das leerzeichen
als trenner ignoriert?

thx
der tom

403
13-03-2007, 23:38
moin,

ungetestet:



Separator=" "

for i in $@ ; do
awk -F $Separator bla;
if [ $i = $3 ]; then
Separator="";
awk -F $Separator bla;
fi
done


Moeglicherweise will man awk da nicht drin haben, dann hat $Separator Sinn. ;)
Ich teste das morgen mal weiter.

Romanday
14-03-2007, 05:17
ihm, das alles was nach $3 kommt direkt in $4 gehört,

awk '{b=4;d=NF;c="";while(d>=b){a=d;c=$a" "c;d--};print c}'

bfit
14-03-2007, 15:11
read a b c d <datei mit deinem string