最近,命令行工具倾向于在其日志输出中使用花哨的 ANSI 颜色(例如,NPM 和许多基于 nodejs 的工具、rvm、docker 和其他一些“现代”工具)。
这使得在屏幕上阅读 (*) 变得很好,但当您想将输出通过管道传输到日志文件或通过不能很好地处理 ANSI 的传输(如各种远程执行工具和基于 Web 的监控解决方案)时,就不那么好了。许多更成熟的工具至少可以检测输出何时不是 TTY 并禁用颜色,但不能使用那些新奇的“用户友好”CLI - 这让我尝试通过管道摆脱 ANSI 颜色通过另一个过程输出。
对输出进行 sed 处理s/\x1B\[[0-9]*\w//g似乎可以完成工作,但是有没有更简洁的方法然后只需将正则表达式复制粘贴到我的所有脚本中?
(*) 至少直到该工具尝试在您的深色背景终端上以深红色显示错误为止。
在 Windows cmd 中启用ANSI 转义码(例如彩色输出)的最简单方法是什么?
我想对一些终端输出进行全屏复制,使用 ANSI 颜色,并生成 HTML,以便我可以发布到博客或 wiki。
我的真实世界示例:我想记录top所有 ANSI 颜色的优点。(我宁愿不做位图截图。文本更有效。)想法?