PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : sed Text in Datei ersetzen Problem



sparky
26.05.2004, 09:55
also ich will einen Platzhalter in einer Datei {PLATZHALTER} ersetzen mit einem Verzeichnisnamen /test/1/2/

mein Code:


#!/bin/bash
MOD_PATH=""

echo -n "Verzeichnis relativ wwwroot: "
read MOD_PATH

for i in *.html ; do
sed -e 's/\{MOD_PATH\}/$MOD_PATH/g' "$i" > "$i.back"
done
exit 0


das problem, ich hab nacher $MOD_PATH als ersetzung drin. und wenn ich " statt ' mache, dann bekomm ich einen Fehler. ich schätze es liegt daran dass in edm Ersetzungsstring / vorkommen.
Hat jemand eine Lösung ?

meez
26.05.2004, 11:54
sed -e 's/\{MOD_PATH\}/'"$MOD_PATH"'/g' "$i" > "$i.back"

So sollte es gehen...

sparky
26.05.2004, 13:04
nein, sowas hab ich auch schon versucht ;)



sed -e 's/\{MOD_PATH\}/'"$MOD_PATH"'/g' "$i" > "$i.back"

meez
26.05.2004, 13:49
Es würde funktionieren...;)
Aber du hast einen Pfad, also / im Inhalt der Var...

meez
26.05.2004, 13:54
so funzt...Ist einfach ein wenig umstädlich..;)

sed 's/\{MOD_PATH\}/'`echo $MOD_PATH | sed 's/\//@@PLACEHOLDER@@/g'`'/g' $i | sed 's/@@PLACEHOLDER@@/\//g' > "$i.back"

oenone
26.05.2004, 23:56
warum nicht einfach bei sed statt / ein anderes zeichen, wie z.b. + oder # benutzen ?

auf bald
oenone