Shell
如何“un-ANSI-fy”日誌?
最近命令行工具傾向於在其日誌輸出中使用花哨的 ANSI 顏色(例如,NPM 和許多基於 nodejs 的工具、rvm、docker 和一些其他“現代”工具)。
這使得在螢幕上閱讀 (*) 變得很好,但當您想通過管道將輸出傳輸到日誌文件或通過不能很好地處理 ANSI 的傳輸(如各種遠端執行工具和基於 Web 的監控解決方案)時就不那麼好了。許多更成熟的工具至少可以檢測輸出何時不是 TTY 並禁用顏色,但不能使用那些新奇的“使用者友好”CLI - 這讓我嘗試通過管道擺脫 ANSI 顏色通過另一個過程輸出。
通過 sed-ing 輸出
s/\x1B\[[0-9]*\w//g
似乎可以完成工作,但是有沒有一種更簡潔的方法,然後只需將粘貼正則表達式複製到我的所有腳本中?(*) 至少在該工具嘗試在您的深色背景終端上以深紅色顯示錯誤之前。
“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).