Sting in Shellscript zerlegen

Post Reply
Message
Author
kotte2001
Posts: 30
Joined: 17. Jul 2001 1:00
Location: Schwarzenberg
Contact:

Sting in Shellscript zerlegen

#1 Post by kotte2001 »

Hallo,
ich habe eine Variable im Shell-Script die sieht so aus:

feld1=1&feld2=1&feld3=0&...usw.

Wie kann ich feld1=1, feld2=1, usw. aus dem String extrahieren, also vom & bin zum & Zeichen?


Danke,

Michael

Falko

Re: Sting in Shellscript zerlegen

#2 Post by Falko »

so koennte man das machen allerdings hast du so ein feld mehr ..
<pre>
daten='feld1=1&feld2=3&feld3=4'
daten=$daten\&

feld=$(echo "$daten" |cut -f1 -d'&')
echo "$feld";
while [ $feld. != "." ] ; do
daten=$(echo "$daten" | sed -e "s/^[^\&]*\&\(.*\)/\1/g")
feld=$(echo "$daten" |cut -f1 -d'&')
echo "$feld"
done

</pre>

Jochen

Re: Sting in Shellscript zerlegen

#3 Post by Jochen »

*schüttel* Sorry, Falko, das ist suboptimal...

<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">echo "$meinegesamtvariable" | \<!--no-->
awk 'BEGIN { RS="&"; FS="=" }
{print $0}'</font><hr></pre></blockquote>

Innerhalb des awk-Programmes kannst Du noch auf den Variablennamen mittels $1 und auf desse Inhalt über $2 zugreifen.

Oder wenn man die Variablen als Shellvariablen gesetzt haben möchte:

echo "$meinegesamtvariable" | tr '&' '\012' >/tmp/tr.$$
. /tmp/tr.$$

Ist das OK so? (Bin die nächsten Tage weg, Korrekturen müssen also andere machen...)

Jochen

Post Reply