Perl による LaTeX 文書の再フォーマット

Perl による LaTeX 文書の再フォーマット

LaTeX変更されていないテキストと区別するために、テキストと数式の変更が赤色で表示されている文書があります。

{\color{red} MODIFIED TEXT OR EQUATION GOES HERE.}

この変更は、単語 1 つ、フレーズ 1 つ、文 1 つ、段落 1 つ、または方程式 1 つにすることができます。例:

 \pi \rho \hat{\bf x} \int\omega_{\color{red} \theta}

または

{\color{red} This work presents the ``numerical study'' of convection in vertical annuli;}

を にperl置き換えることができるワンライナーを書くにはどうすればよいでしょうか。つまり、ドキュメント全体から と右中括弧を削除するということです。{\color{red} MODIFIED TEXT OR EQUATION GOES HERE.}MODIFIED TEXT OR EQUATION GOES HERE.{\color{red}}LaTeX

答え1

perl -p -i -e 's/{\\color{red}(.*)}/\1/g' filename

旗の説明(https://stackoverflow.com/a/6302045/330830):

-p: コマンドの周りに印刷ループを配置して、標準入力の各行に作用するようにします。主に、Perl が awk よりも強力かつシンプルであるため使用されます :-)

-e: プログラムをファイルではなく引数として提供できるようにします。Perl のワンライナーごとにスクリプト ファイルを作成する必要はありません。

-i: 入力ファイルをその場で変更します (元のファイルのバックアップを作成します)。{コピー、元のファイルの削除、名前の変更} プロセスなしでファイルを変更するのに便利です。

答え2

これを試して:

$ echo "{\color{red} MODIFIED TEXT OR EQUATION GOES HERE.}" | \
perl -pe 's/\{\\color\{red\} (.*?)\}/$1/g'
MODIFIED TEXT OR EQUATION GOES HERE.

関連情報