我试图在乳胶文件中整理出一些损坏的引用。它们是\cref{ps.1.1}
之类的命令。我想grep我的文件,只获取命令的参数作为输出,在本例中为ps.1.1
。 grep -Po \\\\cref{.*?} my.tex
只给出了命令,而不是给我的其余部分,但我还要删除输出中的\cref{
和}
,这样我才能迭代他们。
答案 0 :(得分:1)
这是一个Perl单行程序,只打印匹配项,包括同一行上的多个匹配项。它为每个匹配产生一条线,即使对于那些在同一条线上的线,也会在它们的行号前加上。
perl -nle 'print "$.: $1" while(/\\cref\{(.*?)\}/g)' file.tex
这可能需要并且可以修改,具体取决于您想要的确切输出。
例如,要在同一行上多次打印一次,请删除/g
修饰符(在正则表达式后删除g
)。要匹配多个模式,请将它们添加到正则表达式(由|
分隔并按()
分组)并将$2
,$3
(...)添加到{{1} }。要查看整行,请将print
更改为$1
。等
一个简单的脚本将提供更多的灵活性和处理机会。