小编典典

Colorized grep -- 查看带有突出显示的匹配项的整个文件

all

我发现grep‘s --color=alwaysflag 非常有用。但是,grep
只打印匹配的行(除非您要求上下文行)。鉴于它打印的每一行都有一个匹配项,因此突出显示并没有添加尽可能多的功能。

我真的很想要cat一个文件并查看突出显示模式匹配的整个文件。

有什么方法可以告诉 grep 打印正在读取的每一行,而不管是否有匹配项?我知道我可以编写一个脚本来在文件的每一行上运行
grep,但我很好奇这是否可以使用标准grep.


阅读 103

收藏
2022-03-06

共1个答案

小编典典

以下是一些方法:

grep --color 'pattern\|$' file
grep --color -E 'pattern|$' file
egrep --color 'pattern|$' file

|符号是 OR 运算符。要么使用转义它,\要么告诉 grep 搜索文本必须通过添加 -E 或使用egrep命令而不是grep.

搜索文本“pattern|$”实际上是一个技巧,它将匹配具有pattern或具有结尾的行的行。因为所有的行都有一个结尾,所以所有的行都是匹配的,但是一行的结尾实际上不是任何字符,所以它不会被着色。

还要通过管道传递有色部分,例如向less,提供always参数--color

grep --color=always 'pattern\|$' file | less -r
grep --color=always -E 'pattern|$' file | less -r
egrep --color=always 'pattern|$' file | less -r
2022-03-06