各位,我想知道是否存在一个命令只突出显示输入文本的某些部分,而不是像那样过滤它grep
。
举个例子,假设输入文本如下:
foo bar
gaz das
xar
grep "bar\|gaz" input
将打印前两行,突出显示bar
和gaz
,但不会显示xar
。
我知道我可以简单地为参数设置一个大常数-C
,所以它会“总是“ 显示上下文,例如:grep -C1000 "bar\|gaz" input
,但我不确定这是否有效,或者是否有更好的工具。
答案1
使用:
egrep --color 'pattern|$' file
或者如果你想使用 grep
grep --color -E 'pattern|$' file
“pattern|$”将匹配具有您正在搜索的模式的行以及有结尾的行(即所有行)。因为行尾实际上不是任何字符,所以输出的彩色部分只是您的模式