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

一些程序使用ANSI转义序列制作漂亮的进度条和东西。 这很好。

然而,不好的是,如果我把这种程序的输出放到一个文件中,然后尝试查看它,它会被填满奇怪的转义序列。

有没有办法在logging时去掉所有的ANSI代码?

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

./script >> /tmp/output.log 

尝试:

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

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