sed Text in Datei ersetzen Problem

S

sparky

Mitglied
also ich will einen Platzhalter in einer Datei {PLATZHALTER} ersetzen mit einem Verzeichnisnamen /test/1/2/

mein Code:
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 ?
 
sed -e 's/\{MOD_PATH\}/'"$MOD_PATH"'/g' "$i" > "$i.back"

So sollte es gehen...
 
nein, sowas hab ich auch schon versucht ;)

Code:
sed -e 's/\{MOD_PATH\}/'"$MOD_PATH"'/g' "$i" > "$i.back"
 
Es würde funktionieren...;)
Aber du hast einen Pfad, also / im Inhalt der Var...
 
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"
 
warum nicht einfach bei sed statt / ein anderes zeichen, wie z.b. + oder # benutzen ?

auf bald
oenone
 

Ähnliche Themen

Summe von Zahlen in einer Zeilen bilden

Wertebereich ersetzen mit sed

html2text für ganzes Verzeichnis

Zeilen kopieren mit SED

bitte um hilfe bei: Logdatei mit "sed" anpassen

Zurück
Oben