sh: Variable übergeben an sed

Post Reply
Message
Author
Orum

sh: Variable übergeben an sed

#1 Post by Orum »

Hallo,

ich bins noch einmal. Ich würde sed(1) in einem Shellskript gerne eine Variable aus dem Skript übergeben, also:

Code: Select all

#!/bin/sh
VAR="Hallo Welt"
sed -e 's/$/ $&#123;VAR&#125;/' < somefile > newfile
Nur, das ${VAR} eben durch die hochkommata nicht als solche erkannt wird und "$" eigentlich ein regex Ausdruck ist. Wie übergebe ich sed nun eine shellvariable ?

User avatar
jochen
prolinux-forum-admin
Posts: 699
Joined: 14. Jan 2000 15:37
Location: Jülich
Contact:

#2 Post by jochen »

Bei sed hilft nur geschicktes Quoting:

Code: Select all

sed -e 's/$/ '"$&#123;VAR&#125;"'/' < somefile > newfile
Die Folge "..."'...'"..." (Anführungszeichen, Apostrophe,Anführungszeichen) ohne Blanks dazwischen wird als ein Argument von der Shell an sed weitergegeben. Weil aber die Shell-Variable in Anführungszeichen steht, nimmt die Shell die Ersetzung vor, bevor sie sed mit dem Ergebnis aufruft.

Jochen
Die grösste Lüge der EDV? "Mal eben..."

Orum

#3 Post by Orum »

Danke :)

Post Reply