从vim搜索转换为sed


1

我有很长的Latex文档,其中包含很多部分。我想检查文档的所有部分是否都已填写。因此,我会随时搜索以'}'结尾的部分标题,某些空格,然后以'\'开头的下一个部分的内容(这与完美的搜索,但对我来说很好。)

在vim中我使用

/}\_s\\ 

哪个工作正常。但是,我正在努力在命令行上复制搜索。

我通常会使用grep,但这是一个多行匹配,因此就可以了。我对sed的经验很少,但是我已经尝试过:

sed -e '/\}\s\\/p' file.tex

它给了我一切(大概是因为它正在打印匹配的多行-整个文件)

我如何才能改善此sed命令,使其仅给我例如比赛的第一行?

Answers:


2

sed与一样grep,逐行处理文件。此外,它会打印所有内容,除非您指定-n选项(或使用d命令)。

您可以尝试Perl:

perl -0777 -ne 'print $1 while /(\}\s*\\)/g' file.tex
  • -0777 读取整个文件,而不是逐行读取
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.