如何只 grep 两个连字符?

如何只 grep 两个连字符?

在网上寻找解决方案后,我可以 grep 查找两个连字符,而不会出现grep -r "\-\-"or 的问题grep -r \\ --。但是 grep 搜索的文件有时会包含充满连字符的行,例如在注释中,例如/*--------- comment ----- */.我想 grep 返回只有两个连字符相邻的情况。例如,--而不是---。理想情况下我可以使用,-w但我没有运气。

难题的第二部分是,如果以某种方式我只能 grep 查找两个连续的连字符--,我想找到该模式,就像它是完美匹配一样-w。因此,类似的i--;结果不会出现。但i --会。也许有一个简单的解决方案,但我似乎无法弄清楚。

答案1

至少如果你有 GNU grep,你可以使用 PCRE环顾四周匹配一对前面和后面都没有连字符的连字符:

grep -P '(?<!-)--(?!-)' file

或者

grep -Pw '(?<!-)--(?!-)' file

相关内容