Mailinglist Archive: opensuse-de (4938 mails)

< Previous Next >
Re: Problem mit sed/regex;;
  • From: Andreas.Kyek@xxxxxxxxx (Andreas.Kyek@xxxxxxxxx)
  • Date: Wed May 24 09:21:50 2000
  • Message-id: <412568E9.00339A01.00@xxxxxxxxxxxxxxxxxxxxxx>



David Haller wrote:

Bernd Brodesser wrote:
* Marc Schiffbauer schrieb am 23.Mai.2000:
VAR3=`echo XXabXX | sed s/$VAR1/$VAR2/`

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.

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. 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.

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?) die Shell eine Variablenersetzung durchführt.

Andreas

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

< Previous Next >
Follow Ups