为每个 grep 使用不同的颜色

Den*_*s C 7 linux grep colors

如何配置grep以便我可以更智能地突出显示颜色?通过使用不同的颜色?

问题:grep --color默认使用红色来突出匹配,但连续运行仍然难以阅读。如果我运行grep三次,我希望第一次运行使用红色,第二次使用其他颜色(例如绿色),第三次再次使用红色,依此类推。

我读过之前有一个黑客可以在每次运行时交换终端使用中的颜色,以便输出干净且更易于阅读。但我忘了那是什么;它是 zsh 或 bash-script,还是其他一些 shell?

小智 3

您可以将以下内容添加到您的.bashrc文件中:

my_grep() {
  if $GREP_USE_FIRST_COLOR
  then
    export GREP_USE_FIRST_COLOR=false
    export GREP_COLORS='ms=01;31:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36'
  else
    export GREP_USE_FIRST_COLOR=true
    export GREP_COLORS='ms=01;33:mc=01;33:sl=:cx=:fn=35:ln=32:bn=32:se=36'
  fi
  grep --color=auto "$@"
}
alias grep=my_grep
Run Code Online (Sandbox Code Playgroud)

这将改变grep交互式 shell 中后续调用的匹配突出显示颜色,介于粗体红色 ( ms=01;31) 和粗体黄色 ( ms=01;33) 之间。

有关如何设置您喜欢的特定突出显示颜色的更多信息,请参阅grep 手册。GREP_COLORS