我想将命令的输出传递给能够为特定单词的出现着色的东西。
示例: echo“ABC DEF GHI”| magic_color_thing(“DEF”) 应打印 ABC DEF GHI , DEF 着色。
我想用ZSH做,我想保留所有的行以及回车。
提前感谢您的帮助!
答案 0 :(得分:4)
如果你有(最新版本的)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
。
答案 1 :(得分:3)
echo "...... DEF....." | grep --color "DEF"
为你做这份工作?
如果您更多地了解您所处理的数据类型,那将会有所帮助。
(以及没有匹配的行是否重要)