zsh - 如何用管道添加颜色?

标签 zsh

我想将命令的输出通过管道传递给能够为特定单词的出现着色的东西。

示例: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/

相关文章:

unix - zsh:awk printf 的意外输出

string - 像 Python 中一样使用 zsh 分割字符串

macos - ZSH RPROMPT 奇怪的间距?

python - 以有限的执行时间运行命令

terminal - 终端/zsh/terminfo 中的应用模式是什么?

vim - ZSH:如何在命令行中运行 Vim 风格的替代命令?

environment-variables - 如何查看默认 zsh 设置(HISTSIZE、SAVEHIST、...)

linux - 如何使 zsh `run-help` 忽略 `sudo` 并获得有关以下命令的帮助

shell - .zshrc 中的命令未找到

bash - Shell 执行 : time vs./usr/bin/time