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

Mar*_*tin 5 linux terminal logging command-line ansi-escape

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

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

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

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

./script >> /tmp/output.log
Run Code Online (Sandbox Code Playgroud)

War*_*ung 7

尝试:

$ TERM=dumb ./script >> /tmp/output.log
Run Code Online (Sandbox Code Playgroud)

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