linux - 在管道 grep 到 grep 后保留颜色

标签 linux bash colors grep pipe

Preserve ls colouring after grep’ing 中有一个类似的问题。但让我很恼火的是,如果你将彩色 grep 输出通过管道传输到另一个 grep 中,则不会保留颜色。

例如 grep --color WORD * | grep -v AVOID 不保留第一个输出的颜色。但对我来说 ls | grep FILE 确实保留颜色,为什么不一样?

最佳答案

grep 有时会禁用颜色输出,例如在写入管道时。您可以使用 grep --color=always

覆盖此行为

正确的命令行应该是

grep --color=always WORD * | grep -v AVOID

这很冗长,或者你可以添加一行

alias cgrep="grep --color=always"

到您的 .bashrc 例如并使用 cgrep 作为彩色 grep。重新定义 grep 时,您可能会遇到依赖于 grep 特定输出并且不喜欢 ascii 转义码的脚本。

关于linux - 在管道 grep 到 grep 后保留颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2327191/

相关文章:

c++ - 在 Linux 上用 C++ 实现 HTTPS 文件服务器

linux - 在脚本中格式化 bash 命令

linux - 如何为命令而不是文本着色?

linux - 在不升级的情况下恢复包状态以保持 Docker 容器较小

linux - 计算字符串中出现的次数。 Linux

macos - 在 Mac 终端暂停正在运行的脚本,稍后再恢复

javascript - 为什么我的动画 SVG 动画停止改变颜色?

python - 更改特定像素的颜色 [Wand]

linux - 使用单一模式字符串匹配多个单词Lua脚本

Bash 4.4 提示转义当前正在运行的作业数量