Shell, Zeichenkette anhand 2 delimiter trennen

mr_g666

Grünschnabel
Hallo,

habe ein Problem und komme nicht weiter, Ziel ist es mit hilfe eines Shellscripts eine zeichenkette dieser art:

var1:wert1+var2:wert2+var3:wert3...

in folgende Form zu bringen:

wert1,wert2,wert3,....

Habe verschiedene Ansätzte mit awk und cut probiert, aber komme noch nicht zum Ziel, irgendjemand einen Ansatz der helfen könnte?

Gruß
G
 
Hallo,

wie wärs denn mit suchen und ersetzen?:

Bash:
echo "var1:wert1+var2:wert2+var3:wert3" | sed 's/^[^:]*://g' | sed 's/+[^:]*:/,/g'

Gruß,
RedWing
 
Etwas einfacher:
Bash:
echo var1:wert1+var2:wert2+var3:wert3|sed 's/[^:]*:\([^\+]*\)/\1,/g'
 
Hi,

danke für die Antworten, habs jetzt so gelöst:

Code:
for i in $LINES
do
 LINE2=''
 COUNT=`echo $i | awk '{n = split($1,arr,"+"); print n}'`
 for (( j=1 ; j<=COUNT ; j++ ))
 do
  LINE=`echo $i | cut -d"+" -f$j`
  LINE=`echo $LINE | cut -d":" -f2`
  LINE2="$LINE2","$LINE"
 done
 echo $LINE2 >> $WORKDIR/all_csv
done

ist zwar auf den ersten Blick komplizierter aber es klappt.
 
Herrje. Es geht bestimmt noch komplizierter. Zum Beispiel wenn Du statt einem Shell-Script einfach VBA in einer VM laufen lässt…

Warum fragst Du hier nach Lösungen (die einfach sind und hervorragend funktionieren), wenn Du sie dann nicht nutzt?
 
Zurück