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