sed Text in Datei ersetzen Problem

  • Ersteller Ersteller sparky
  • Erstellt am Erstellt am
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

Switche abfragen über Script

script sshpass

Summe von Zahlen in einer Zeilen bilden

Alle Dateien eines Verzeichnisses mit einer anderen Datei vergleichen

Wertebereich ersetzen mit sed

Zurück
Oben