颜色匹配但也打印其他线条

paw*_*318 5 grep text-processing

我有一个别名:alias grep='grep --color=auto'. 我希望有一些方法不仅可以打印匹配行,还可以打印所有行,并且只打印颜色匹配模式。我怀疑是否有一个选项可以做到这一点grep。任何其他工具?或者想法如何实现这一目标?

cuo*_*glm 10

你可以用-E选项来解决这个问题:

grep -E '(^|pattern)' file
Run Code Online (Sandbox Code Playgroud)

这是一个简单的输出:

在此处输入图片说明


And*_*ese 5

您可以使用一点sed和终端魔法来做到这一点:

$ sed -e 's/<pattern>/\x1b[31;01m&\x1b[m/g' <file>
Run Code Online (Sandbox Code Playgroud)

这将替换每次出现<pattern>的匹配文本\x1b[31;01m(这是“将前景色设置为粗体红色”的终端转义序列)和\x1b[m(与“将前景色设置为默认值”相同)。