我有一堆LaTeX文件,我想使用grep pattern *.tex -n --color=always
搜索。重要的是我要看到:
此外,有时模式需要完全匹配,因此命令变为grep pattern *.tex -n -w --color=always
我想修改此命令以排除我的*.tex
文件中以%
字符开头的注释行。我对评论中的比赛不感兴趣。
这可能吗?
答案 0 :(得分:1)
也许您可以尝试以下命令:
grep -n -v --color=always '^%' *.tex | grep content
EXPLANATION
grep
调用排除以-v
开始的(%
)行(正则表达式^%
与行首的%
匹配({{1 }})^
调用的输出作为输入传递给第二个grep
调用grep
调用仅包括与过滤器模式匹配的行(如果需要,可以添加grep
选项)。希望这对您有帮助!
答案 1 :(得分:0)
这会吗?首先是一些测试内容:
$ cat file
yes
no % yes commented out
yes % yes before comment
no
noyes
furthermore yes
furthermore yes% yes
furthermore no% yes
grep:
$ grep -Hn "^[^%]*\(^\| \)yes\( \|$\|%\)" file
file:1:yes
file:3:yes % yes before comment
file:6:furthermore yes
file:7:furthermore yes% yes
修改:部分匹配:
$ grep -Hn "^[^%]*yes" file
并仅突出显示您需要再次为其重复的搜索词:
$ grep -Hn "^[^%]*yes" file | grep yes
file:1:yes
file:3:yes % yes before comment
file:5:noyes
file:6:furthermore yes
file:7:furthermore yes% yes