我有一個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.