删除所有出现的命令,保留命令参数

问题描述 投票:0回答:1

假设我有一个包含以下内容的 TeX 文件:

A \foo[B]{C \bar{D \baz[E]{F}}} G \foo{H} I

我正在寻找一种工具,可以自动删除所有出现的

\foo
命令,用 'y' 替换
\foo[x]{y}
,即使 'y' 包含换行符和/或许多嵌套括号。上面的文字将变成:

A C \bar{D \baz[E]{F}} G H I

我有什么选择?命令行会很好,但我会考虑任何其他选择。

regex latex
1个回答
0
投票

这可以使用 unix(或 Linux)中的 sed 命令来完成。如果您使用的是 Windows,cygwin 提供了一个运行良好的 unix 模拟。

sed -i 's/\\foo\[[^\]]*{//g' <your tex file>

会做到的。这使用了正则表达式。第二个单引号之前的 g 使其删除所有 foo 命令,即使在 tex 代码的一行中多次出现。

© www.soinside.com 2019 - 2024. All rights reserved.