如何“un-ANSI-fy”日志?

Gus*_*uss 10 shell console ansi

最近,命令行工具倾向于在其日志输出中使用花哨的 ANSI 颜色(例如,NPM 和许多基于 nodejs 的工具、rvm、docker 和其他一些“现代”工具)。

这使得在屏幕上阅读 (*) 变得很好,但当您想将输出通过管道传输到日志文件或通过不能很好地处理 ANSI 的传输(如各种远程执行工具和基于 Web 的监控解决方案)时,就不那么好了。许多更成熟的工具至少可以检测输出何时不是 TTY 并禁用颜色,但不能使用那些新奇的“用户友好”CLI - 这让我尝试通过管道摆脱 ANSI 颜色通过另一个过程输出。

对输出进行 sed 处理s/\x1B\[[0-9]*\w//g似乎可以完成工作,但是有没有更简洁的方法然后只需将正则表达式复制粘贴到我的所有脚本中?

(*) 至少直到该工具尝试在您的深色背景终端上以深红色显示错误为止。

Lic*_*epa 1

“ansifilter -p”可能对你有用......

它位于 Fedora 存储库中;-p 指定纯输出:

Name        : ansifilter
From repo   : updates
Summary     : ANSI terminal escape code converter
URL         : http://www.andre-simon.de/doku/ansifilter/ansifilter.php
License     : GPLv3+
Description : Ansifilter handles text files containing ANSI terminal escape codes.
            : The command sequences may be stripped or be interpreted to generate formatted
            : output (HTML, RTF, TeX, LaTeX, BBCode).
Run Code Online (Sandbox Code Playgroud)