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
Sting in Shellscript zerlegen
Re: Sting in Shellscript zerlegen
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>
<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>
Re: Sting in Shellscript zerlegen
*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
<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