我试图让每个 grep 命令以不同的颜色突出显示其结果。我可以用这样的一行手动完成:
ls -l GREP_COLORS='mt=01;32' grep c | GREP_COLORS='mt=01;31' grep o | GREP_COLORS='mt=01;34' grep n | GREP_COLORS='mt=01;36' grep f
Run Code Online (Sandbox Code Playgroud)

每个c字符将以绿色突出显示,每个o字符将以红色突出显示,等等......
要使此示例正常工作,您需要确保始终使用
--color=alwaysgrep 命令。我已经在我的.bashrc所以 grep 中设置了它总是有颜色:
export GREP_OPTIONS='--color=always'
我试图完成的是用别名包装这个功能,所以我每次grep都可以调用并拥有不同的GREP_COLORS值。我理解为每个新的管道 grep 考虑多个 shell,我试图通过创建一些文件(每种颜色一个)来解决这个问题,以表明它们已经被使用。
我做了一些尝试,但奇怪的是,这个似乎是“最好的”。我有这个.bashrc:
alias mg="mygrep"
mygrep(){
# define possible colors
COLORS=("01;32" "01;31" "01;34" "01;36")
COUNTER=0
NUM=0
# as long as the color has already been used, keep searching
while [ -f /home/lior/Desktop/mygrep_$NUM ]; do
# get a …Run Code Online (Sandbox Code Playgroud)