我想将命令的输出通过管道传递给能够为特定单词的出现着色的东西。
示例:echo "ABC DEF GHI"| magic_color_thing("DEF") 应该用 DEF 颜色打印出 ABC DEF GHI。
我想用 ZSH 来做,我想保留所有的行和回车。
提前感谢您的帮助!
最佳答案
如果您有(最新版本的)GNU grep,请使用其 --color
选项。要让它也打印不匹配的行,请使用与空字符串匹配的模式。
… | grep --color -E '|DEF'
如果你想完全在 zsh 中完成它,让它遍历行,用颜色代码包围 DEF
。
autoload colors; colors
while IFS= read -r line; do
print -r -- "${line//DEF/$fg[red]DEF$fg[default]}"
done
另见 How to have tail -f show colored output和其他一些 questions tagged color
.
关于zsh - 如何用管道添加颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6303254/