Hallo Axel, * Axel Heinrici schrieb am 09.Okt.2003:
On Thursday 09 October 2003 13:01, David Haller wrote:
$ set -x $ echo "a'b'c" | sed "s/'/\\\'/g" + echo 'a'\''b'\''c' + sed 's/'\''/\\'\''/g' a\'b\'c $ echo "a'b'c" | sed 's/'\''/\\'\''/g' + echo 'a'\''b'\''c' + sed 's/'\''/\\'\''/g' a\'b\'c $ echo "a'b'c" | sed 's/'"'"'/\\'"'"'/g' + echo 'a'\''b'\''c' + sed 's/'\''/\\'\''/g' a\'b\'c $ set +x
Das Interessante ist dabei, dass sed in beiden Faellen das gleiche zu sehen bekommt :)
Äähm... Was für zwei Fälle? Ich habe schon einen Verdacht was du meinst und ich bedanke mich schonmal für die Mühe, aber mein Hirn ist nicht in der Lage obige Zeilen in eindeutigen Zusammenhang mit _zwei Fällen_ zu bringen, sorry. Immerhin habe ich jetzt schonmal was über "set" gelernt (und die mail von Andreas wird auch etwas klarer). Es funktioniert jetzt auch und ich glaube die sed-Aufrufe verstanden zu haben.
Ohne näher auf obiges Beispiel einzugehen, *g* möchte ich darauf hinweisen, daß es wichtig ist, zu verstehen, was sed macht, und was die shell. Nur so hast Du eine Chance sed zu verstehen. set z.B hat mit sed rein gar nichts zu tun. \ hat sowohl in der shell als auch bei sed eine besondere Bedeutung, nämlich das Maskieren, des unmittelbar folgenden Zeichens, ' und " haben nur in der shell eine besondere Bedeutung. In sed, so sie da noch ankommen, sind es Zeichen wie alle anderen auch. Bernd