【发布时间】:2015-08-19 15:08:39
【问题描述】:
这就是我的想法:grep 程序尝试对行中出现的每个模式进行模式匹配,就像:
echo "abc abc abc" | grep abc --color
结果是三个abc 都是红色的,所以 grep 对该行进行了完整的模式匹配。
但想想在这种情况下,我有很多大文件要处理,但我感兴趣的词很可能出现在前几个词中。我的工作是找到其中没有单词的线条。因此,如果grep 程序可以在找到单词后继续到下一行,而无需检查该行的其余部分,它可能会明显更快。
在 grep 中是否有 partial match 选项可以执行此操作?
喜欢:
echo abc abc abc | grep --partial abc --color
只有第一个 abc 是红色的。
【问题讨论】:
-
grep检查整行的唯一原因可能是因为您使用的是--color。如果grep在没有它的第一场比赛之后还没有停止,我会感到惊讶,因为无论abc在该行中匹配多少次,该行都将成为输出的一部分。 -
正如@chepner 提到的,考虑添加
--color=never以禁用着色。
标签: regex linux bash shell grep