PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : bash: übegreb. string zerlegen und in for schleife verarbeiten



meinereinerseiner
20-09-2007, 14:02
hallo,

wie kann ich folgendes machen:

scriptaufruf: ./test.sh 1,2,3,4


#!/bin/sh

for i in $1
do
echo $i
done

als augabe dann:
1
2
3
4

sprich er soll $1 zerlegen (als trenner ",") und dann einzeln ausgeben.
ok, könnte es gleich mit $1-$4 machen, in echt wird der string aber recht lang.

thx

der tom

meinereinerseiner
20-09-2007, 14:15
mit:


for i in `echo $1 | sed 's/'\,'/'\ '/g'`

gehts, ist vielleicht nicht die eleganteste, aber es geht. :)

der tom

peschmae
20-09-2007, 16:59
Sådär:


peschmae@sid:/tmp$ cat test.sh
#!/bin/bash

IFS=,

for i in $1
do
echo $i
done

peschmae@sid:/tmp$ ./test.sh 1,2,3,4
1
2
3
4
peschmae@sid:/tmp$


MfG Peschmä

jan61
20-09-2007, 19:13
Moin,


echo "1,2,3,4" | tr ',' '\n' | while read i; do echo $i; done
echo "1,2,3,4" | awk -F, '{for(i=1;i<=NF;i++)print $i}'Jan