你能保留grep中不匹配内容的格式吗?

时间:2016-07-27 11:53:07

标签: linux bash colors grep ack

当您使用grep两次时,第一个突出显示被剥离。据我所知,这有助于避免匹配格式代码。 (相比之下,“ack-grep”将突出显示新匹配,同时保留旧匹配中的格式,只要匹配不重叠,但它将很乐意匹配使用的格式代码。) 我正在寻找的行为是基础文本上的模式匹配,好像格式化不存在,但不是以从原始格式剥离格式以供将来显示。这种行为是在某个地方构建的吗?我的grep别名是--color = always。

这可能是Preserve colouring after piping grep to grep的副本 - 但是我也想找出一些程序为什么以及如何去除格式化,以及它是否可用于纠正意外的转义码匹配。 (如果这个问题得到解决或不可解决,我会高兴地将其关闭。)

1 个答案:

答案 0 :(得分:2)

默认情况下,在.bashrc文件中,ls和grep被定义为别名。别名是:

ls -> ls --color=auto
grep -> grep --color=auto

自动选项意味着如果stdout是屏幕,它将显示带颜色的输出,但如果输出被重定向到管道或文件,则颜色格式化将被删除。当您选择" - color = always"时,无论输出重定向的位置如何,都会强制使用颜色进行格式化。您也可以永远不使用--color=never

进行任何颜色格式设置

您可以输入alias来检查别名。您还可以执行普通lsgrep命令(即,别名给出的参数),在开头添加反斜杠。

例如,使用ls命令:

\ls

将输出显示在没有颜色的屏幕上。