K
Kryptaesthesie
Jungspund
Mahlzeit
Ich habe eine Datei, vom Aufbau her etwa so:
Ziel soll es sein, die Zeile <modi zu ersetzen.
Den Regex habe ich und laut The Regex Coach funktioniert der auch, wie gewünscht.
Jetzt möchte ich das aber gerne in einem Script machen.
Also habe ich mir sed aus der Werkzeugkiste geholt. Leider komme ich mit dem Escapen nicht klar.
So sieht mein Script aus:
Es kommt kein Fehler, aber ersetzt wird auch nichts.
Wie, was, wo muss ich da noch escapen?
Ach ja, dass das nach dem Script derzeit noch nicht in der Datei ersetzt wird, sondern auf stdout schreibt, ist mir bekannt. Aber ich wollte auch erst mal nur den sed-Befehl zum Laufen kriegen!
Danke für eure Hilfe!
Gruß
Gerrit
Ich habe eine Datei, vom Aufbau her etwa so:
Code:
Zeile 1
Zeile 2
Zeile 3
<modi value="ENTW"/>
Zeile 5
Zeile 6
Den Regex habe ich und laut The Regex Coach funktioniert der auch, wie gewünscht.
Jetzt möchte ich das aber gerne in einem Script machen.
Also habe ich mir sed aus der Werkzeugkiste geholt. Leider komme ich mit dem Escapen nicht klar.
So sieht mein Script aus:
Code:
echo "vorher:"
echo
cat /home/ich/test_verzeichnis/datei_mit_inhalt.txt
echo
echo
echo
echo "nachher:"
echo
sed -e 's/(<(?i)(modi))\s+value=\"\w*\"\/?>(<\/(?i)(modi)>)?/NEUER_WERT/g' /home/ich/test_verzeichnis/datei_mit_inhalt.txt
echo
# normaler Ausdruck: (<(?i)(modi))\s+value="\w*"/?>(</(?i)(modi)>)?
# Ausdruck escaped: (<(?i)(modi))\s+value="\w*"\/?>(<\/(?i)(modi)>)?
Es kommt kein Fehler, aber ersetzt wird auch nichts.
Wie, was, wo muss ich da noch escapen?
Ach ja, dass das nach dem Script derzeit noch nicht in der Datei ersetzt wird, sondern auf stdout schreibt, ist mir bekannt. Aber ich wollte auch erst mal nur den sed-Befehl zum Laufen kriegen!
Danke für eure Hilfe!
Gruß
Gerrit