substitute
30-09-2007, 12:26
Hi!
Ich beschäftige mich gerade etwas mit der Shell-Programmierung unter Linux (Ubuntu-Bash) und stoße dabei leider gerade auf ein Problem:
Ich habe eine Datei seite.template, die irgendwo im Text
<REPLACER>
enthält.
Nun möchte ich diesen Text-Teil durch URLs ersetzen und das Ergebnis in seite.html speichern.
Mein bisheriger Versuch:
cat "seite.template" | sed s/"<REPLACER>"/${LINKS}/g > "seite.html"
Prinzipiell funktioniert dieser Aufruf, das Problem sind die Sonderzeichen in der Variable $LINKS- deren Inhalt kann z.B. so aussehen:
http://example.org/subdir/site.html
http://example.org/subdir/subdir/site11.html
http://example.org/index.html
Durch die Slashes wird der Parameter-Teil nach sed zerstört- die Ausgabe lautet dann nur noch:
sed: -e expression #1, char 15: unterminated `s' command
Was muss ich tun, damit es funktioniert? Das Problem scheint laut Google ja recht verbreitet zu sein, nur leider habe ich mit den Lösungsvorschlägen nicht viel angefangen, weil es bei denen nur um Sonderzeichen ging, nicht aber um eine Variable, welche die Sonderzeichen enthält (weswegen die Maskierung mit ' oder \/ nicht möglich ist).
MfG
Fabian
Ich beschäftige mich gerade etwas mit der Shell-Programmierung unter Linux (Ubuntu-Bash) und stoße dabei leider gerade auf ein Problem:
Ich habe eine Datei seite.template, die irgendwo im Text
<REPLACER>
enthält.
Nun möchte ich diesen Text-Teil durch URLs ersetzen und das Ergebnis in seite.html speichern.
Mein bisheriger Versuch:
cat "seite.template" | sed s/"<REPLACER>"/${LINKS}/g > "seite.html"
Prinzipiell funktioniert dieser Aufruf, das Problem sind die Sonderzeichen in der Variable $LINKS- deren Inhalt kann z.B. so aussehen:
http://example.org/subdir/site.html
http://example.org/subdir/subdir/site11.html
http://example.org/index.html
Durch die Slashes wird der Parameter-Teil nach sed zerstört- die Ausgabe lautet dann nur noch:
sed: -e expression #1, char 15: unterminated `s' command
Was muss ich tun, damit es funktioniert? Das Problem scheint laut Google ja recht verbreitet zu sein, nur leider habe ich mit den Lösungsvorschlägen nicht viel angefangen, weil es bei denen nur um Sonderzeichen ging, nicht aber um eine Variable, welche die Sonderzeichen enthält (weswegen die Maskierung mit ' oder \/ nicht möglich ist).
MfG
Fabian