Mailinglist Archive: opensuse-de (4938 mails)

< Previous Next >
Re: Problem mit sed/regex;;
  • From: David@xxxxxxxxxx (David Haller)
  • Date: Wed May 24 10:00:52 2000
  • Message-id: <XFMail.000524120052.David@xxxxxxxxxx>



Hallo Andreas,

Andreas.Kyek@xxxxxxxxx wrote:
David Haller wrote:
Bernd Brodesser wrote:
VAR3=`echo XXabXX | sed 'sed s|$VAR1|$VAR2|'`

Das funzt bei mir nicht. $ ./test.sh
sed: -e expression #1, char 18: Unterminated `s' command

Klar, da das zweite Vorkommen der Zeichenfolge sed ein Vertipper von Bernd
war.

Klar. Aber da's von Bernd kam, hab ich's einfach doch mal getestet, nur
um zu sehen ob da nicht doch.... ;)

Das dann naheliegende:
VAR3=`echo /home/marc/test.sh | sed 's|$VAR1|$VAR2|'`
mach gar nichts, was aber klappt ist:

Falsch! Es macht schon was, nur es wird nichts ersetzt.

Ebent. (Ich habe der Einfachheit halber "macht nix" mit "macht nix
fuer die Problemloesung sinnvolles" gleichgesetzt ;)

Das Problem ist, das die
Shell alles in einfachen Quotes (') gar nicht beachtet. Insbesondere findet
keine Variablenersetzung statt. Hier versuchst du also den String '$VAR1'
durch den String '$VAR2' zu ersetzen.

Ahh! (Schon wieder was gelernt).

VAR3=`echo /home/marc/test.sh | sed "s|$VAR1|$VAR2|"`
(Achso: bei mir ist VAR1=marc, VAR2=dh/bin ;)

Auch klar, weil bei doppelten Quotes (wie schreibt man eigentlich den Plural
von Hochkomma?)

Wie bei "Komma": Hochkommata

die Shell eine Variablenersetzung durchführt.

Ah jetzt ja... bilde ich mir ein was geblickt zu haben...

CU
David


--
"DOS=HIGH ...I knew it was on something!"
(UNIX user, while reading C:\CONFIG.SYS)

email: David@xxxxxxxxxx www: www.dhaller.de

---------------------------------------------------------------------
To unsubscribe, e-mail: suse-linux-unsubscribe@xxxxxxxx
For additional commands, e-mail: suse-linux-help@xxxxxxxx


< Previous Next >