负反向的grep反斜杠

Sim*_*mon 21 regex bash grep

我想XXX在我的乳胶文档中找到不是命令形式的出现次数\XXX.因此,我正在寻找没有反斜杠的事件.

我尝试了以下方法:

grep -c -e '(?<!\)XXX' test.tex    #result: grep: Unmatched ) or \)
grep -c -e '(?<!\\)XXX' test.tex   #result: 0
grep -c -e "(?<!\\)XXX" test.tex   #result: -bash: !\\: event not found
Run Code Online (Sandbox Code Playgroud)

它们都没有按预期工作.实际上我完全不理解上一条错误消息.

我的test.tex只包含以下几行

%test.tex

XXX

\XXX
Run Code Online (Sandbox Code Playgroud)

所以预期的结果是1.

有任何想法吗?

Ps.:我在bash工作.

cho*_*oba 39

标准和扩展正则表达式都不支持后面的外观.使用Perl正则表达式:

grep -P '(?<!\\)xxx' test.tex
Run Code Online (Sandbox Code Playgroud)