命令行中的grep能否设置高亮显示与匹配部分相符的行?

5

我正在使用cygwin命令行中的grep工具。 我想知道是否有任何方法可以使它突出显示与正则表达式匹配的每行内容的部分。 我看到的最接近的选项是-o选项,但它只输出匹配的区域,我想要看到整个行。

3个回答

12

看一下 --color(或者--colour)选项,例如:

grep --color POST access_log 

默认情况下,它使用“auto”模式,只在终端输出时包括颜色代码,但在将输出导出到其他地方时不包括。如果想要将颜色导出到标准输出之外的位置,请使用--color=always。

请参阅链接文章了解如何更改颜色并使grep默认使用此选项。


2
我添加了 "--color=always",但这似乎破坏了链式 grep,可能是因为颜色控制字符被正则表达式捕获了。我想到的解决方法是在最后重复第一个 grep,并加上 "--color" 选项。我失去了文件名的颜色,但它仍然可以给匹配部分加上颜色,这是重要的部分。 - Herms

8
尝试使用 --color 开关。

哇,我不确定我是怎么错过那个的。还有一个问题,当链接greps时是否有任何方法可以保持颜色?我有一个grep用于搜索,管道到第二个grep以过滤掉一些我不想看到的匹配项。有没有办法从第一个grep中保留颜色? - Herms
我已经更新了我的答案,并提供了一个可能的方法,你可以这样做。 - Paul Dixon

4
你可能想尝试使用ack工具。它默认会进行高亮显示,如果我没记错的话。
实际上,它默认提供了许多有用的功能。有些人喜欢它,我希望你也会喜欢它。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接