假设我有一些文档包含多行KEYWORD
和一些行PREFIX_KEYWORD
。
我如何仅匹配KEYWORD
这些行并忽略其上有PREFIX_KEYWORD
的行?
是的,我可以grep KEYWORD
,将结果提供给我选择的编辑器,让编辑器删除所有PREFIX_KEYWORD
的行,但我要问是否有内置方式在grep中这样做。
如果这有帮助:我对完全匹配不感兴趣,但只想知道文件中是否出现KEYWORD
。
答案 0 :(得分:3)
一种方法是grep你的KEYWORD并过滤掉其余的。这可能看起来像
grep KEYWORD file | grep -v PREFIX_KEYWORD
使用perl表达式的另一种方法:
grep -P '(?<!PREFIX_)KEYWORD' file
这里给出了同样的答案:Regex to match specific strings without a given prefix
答案 1 :(得分:1)
试试这个:
grep -w KEYWORD your_file
-w
的手册页说:
-w Searches for the expression as a word as if surrounded
by \< and \>.
答案 2 :(得分:0)
如果您需要单词KEYWORD
,为什么不在KEYWORD
之前使用任何特殊字符的正则表达式(空格,换行符等)?