tuxfan: Ersetzen mittels regulärer Ausdrücke

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

  1. 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