2

假设我有一些文档包含几行KEYWORD带有PREFIX_KEYWORD.

我将如何只匹配这些行KEYWORD并忽略PREFIX_KEYWORD它们上面的行?

是的,我可以 grep for KEYWORD,将结果输入我选择的编辑器,然后让编辑器删除所有有PREFIX_KEYWORD但我想知道 grep 中是否有内置方法来执行此操作。

如果这有帮助:我对完全匹配不感兴趣,只想知道KEYWORD文件中是否出现了 。

4

3 回答 3

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

于 2013-05-02T09:45:53.607 回答
1

试试这个:

grep -w KEYWORD your_file

手册页-w说:

 -w    Searches for the expression as a word as if surrounded
       by \< and \>.
于 2013-05-02T09:45:19.183 回答
0

如果您自己需要这个词KEYWORD,为什么不KEYWORD使用前面的任何特殊字符(空格、换行符等)进行正则表达式呢?

于 2013-05-02T09:46:00.110 回答