我有一个LaTeX
文档,其中文本和方程的修改以红色完成,以便将它们与未修改的文本区分开来:
{\color{red} MODIFIED TEXT OR EQUATION GOES HERE.}
这种修饰可以是单个单词、短语、句子、段落或方程式。例如:
\pi \rho \hat{\bf x} \int\omega_{\color{red} \theta}
或者
{\color{red} This work presents the ``numerical study'' of convection in vertical annuli;}
我怎样才能写一个可以替换to 的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.