Ersetzen mittels regulärer Ausdrücke
tuxfan
- perl
Hallo,
ich habe ein kleines Problem beim finden und ersetzen von Zeichen in Strings. So möchte ich eine Datei durchsuchen, ob sich dort &-Zeichen befinden und diese mittels \ entwerten, sofern nicht schon eines davor steht. Kurz, ich möchte & durch & ersetzen, aber nicht wenn dort schon & steht.
Dies versuche ich mit folgender Zeile, aber die ist irgendwie nicht ganz korrekt:
perl -i.orig -p -e 's#([^])([&])#$1/$2#msg;' *.tex
Es soll die Eingabedatei gesichert werden mit der Endung .orig, und als Eingabedatei sollen alle .tex Dateien des Verzeichnisses genommen werden. Es klappt alles bis auf die Ersetzung.
Für Hilfe bin ich dankbar.
Tuxfan
Hallo tuxfan,
perl -i.orig -p -e 's#([^])([&])#$1/$2#msg;' *.tex
perl -pi.orig -e 's!([^\]|^)&!$1\$2!sg;' *.tex
sollte das gewuenschte Ergebnis bringen.
Gruesse,
CK