PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zwei Zeichen im IFS



223
08.03.07, 08:47
Hallo,

ich möchte über IFS einen String zerlegen. Der String soll immer nach der Zeichenfolge ",<space>" getrennt werden.

Ich habs damit versucht, es funktioniert soweit, nur trennt er nicht nur nach ",<space>" sondern auch einfach nach "<space>":



#!/bin/bash
export IFS=", "

Satz="user, \"Vorname Nachname\", bla bla bla, bla bla bla"
set -- $Satz
echo "Username: " $1
echo "VorNachname: " $2

unset IFS



Ich könnte nun einfach sagen:
echo "VorNachname: " $2 $3 - dies geht aber nur solange gut, wie wirklich auch Vor und Nachname im String stehen. Ist der String z.B.:

Satz="admin, \"admin\", bla bla bla, bla bla bla"

so bekomme ich für das

echo "VorNachname: " $2 $3 den Wert: admin bla bla bla



Kann mir jemand behilflich sein und mir sagen wie ich nur die angegebene Zeichenreihenfolge trenne und nicht auch die einzelnen Zeichen der angegebenen Zeichenreihenfolge?

Der Gestreifte
08.03.07, 17:00
Spricht irgendwas dagegen, ein einfaches "," als IFS zu nehmen?

fs111
08.03.07, 20:20
wie wäre es mit awk?



echo "Hallo liebe Welt, dies ist ein Test" | awk -F", " '{print $1 "|" $2 }'