最近命令行工具倾向于在其日志输出中使用花哨的 ANSI 颜色(例如,NPM 和许多基于 nodejs 的工具、rvm、docker 和一些其他“现代”工具)。
这使得在屏幕上阅读 (*) 变得很好,但当您想通过管道将输出传输到日志文件或通过不能很好地处理 ANSI 的传输(如各种远程执行工具和基于 Web 的监控解决方案)时就不那么好了。许多更成熟的工具至少可以检测输出何时不是 TTY 并禁用颜色,但不能使用那些新奇的“用户友好”CLI - 这让我尝试通过管道摆脱 ANSI 颜色通过另一个过程输出。
通过 sed-ing 输出s/\x1B\[[0-9]*\w//g
似乎可以完成工作,但是有没有一种更简洁的方法,然后只需将粘贴正则表达式复制到我的所有脚本中?
(*) 至少在该工具尝试在您的深色背景终端上以深红色显示错误之前。
“ansifilter -p”可能对你有用......
它在 Fedora 存储库中;-p 指定普通输出: