存储脚本输出时删除ANSI代码

时间:2011-06-10 13:00:57

标签: linux logging command-line terminal ansi-escape

有些程序使用ANSI转义序列制作漂亮的进度条和内容。真好。

但不错的是,如果我把那种程序的输出放到一个文件中然后尝试查看它就会充满奇怪的转义序列。

有没有办法在记录时删除所有ANSI代码?

我通常以这种方式记录脚本的输出:

./script >> /tmp/output.log

1 个答案:

答案 0 :(得分:7)

尝试:

$ TERM=dumb ./script >> /tmp/output.log

如果这不起作用,那是因为ANSI代码已经硬编码到脚本中,所以没有简单的方法可以删除它们。如果是这样,那是因为它正在做正确的事情,将漂亮的输出委托给libncurses或类似的东西,这样当你更改TERM变量时,库就不再发送这些代码。