我发现grep‘s --color=alwaysflag 非常有用。但是,grep 只打印匹配的行(除非您要求上下文行)。鉴于它打印的每一行都有一个匹配项,因此突出显示并没有添加尽可能多的功能。
grep
--color=always
我真的很想要cat一个文件并查看突出显示模式匹配的整个文件。
cat
有什么方法可以告诉 grep 打印正在读取的每一行,而不管是否有匹配项?我知道我可以编写一个脚本来在文件的每一行上运行 grep,但我很好奇这是否可以使用标准grep.
以下是一些方法:
grep --color 'pattern\|$' file grep --color -E 'pattern|$' file egrep --color 'pattern|$' file
|符号是 OR 运算符。要么使用转义它,\要么告诉 grep 搜索文本必须通过添加 -E 或使用egrep命令而不是grep.
|
\
egrep
搜索文本“pattern|$”实际上是一个技巧,它将匹配具有pattern或具有结尾的行的行。因为所有的行都有一个结尾,所以所有的行都是匹配的,但是一行的结尾实际上不是任何字符,所以它不会被着色。
pattern
还要通过管道传递有色部分,例如向less,提供always参数--color:
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