Ich habe ein LaTeX
Dokument, in dem die Änderungen im Text und in den Gleichungen in Rot markiert sind, damit sie vom unveränderten Text unterschieden werden können:
{\color{red} MODIFIED TEXT OR EQUATION GOES HERE.}
Diese Änderung kann ein einzelnes Wort, eine Phrase, ein Satz, ein Absatz oder eine Gleichung sein. Beispiel:
\pi \rho \hat{\bf x} \int\omega_{\color{red} \theta}
oder
{\color{red} This work presents the ``numerical study'' of convection in vertical annuli;}
perl
Wie kann ich einen Einzeiler schreiben , der {\color{red} MODIFIED TEXT OR EQUATION GOES HERE.}
durch ersetzen kann MODIFIED TEXT OR EQUATION GOES HERE.
? Ich meine, durch Entfernen {\color{red}
der rechten geschweiften Klammer }
im gesamten LaTeX
Dokument.
Antwort1
perl -p -i -e 's/{\\color{red}(.*)}/\1/g' filename
Erklärung der Flaggen (aushttps://stackoverflow.com/a/6302045/330830):
-p: Legt eine Druckschleife um Ihren Befehl, sodass dieser auf jede Zeile der Standardeingabe wirkt. Wird hauptsächlich verwendet, damit Perl awk in puncto Leistung UND Einfachheit um Längen schlagen kann :-)
-e: Ermöglicht Ihnen, das Programm als Argument statt in einer Datei bereitzustellen. Sie möchten nicht für jeden kleinen Perl-Einzeiler eine Skriptdatei erstellen müssen.
-i: Ändert Ihre Eingabedatei direkt (erstellt eine Sicherungskopie des Originals). Praktisch zum Ändern von Dateien ohne den Vorgang {Kopieren, Original löschen, Umbenennen}.
Antwort2
Versuche dies:
$ echo "{\color{red} MODIFIED TEXT OR EQUATION GOES HERE.}" | \
perl -pe 's/\{\\color\{red\} (.*?)\}/$1/g'
MODIFIED TEXT OR EQUATION GOES HERE.