小编Lix*_*Lix的帖子

多彩多姿的 Grep

我试图让每个 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)

shell grep bash pipe

32
推荐指数
2
解决办法
8007
查看次数

标签 统计

bash ×1

grep ×1

pipe ×1

shell ×1