【问题标题】:Remove ANSI codes when storing script output存储脚本输出时删除 ANSI 代码
【发布时间】:2011-06-10 13:00:57
【问题描述】:

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

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

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

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

./script >> /tmp/output.log

【问题讨论】:

  • 您不能只将程序的输出捕获到单独的日志文件中。换句话说,你为什么必须使用脚本?祝你好运!
  • 脚本不是日志脚本,脚本/程序是使用 ANSI 序列的。它也有正常输出,这是我不想存储的正常输出。 ansi-sequences 应该被剥离掉。
  • 这应该移到 unix.stackexchange.com。

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


【解决方案1】:

试试:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-25
    • 2016-03-12
    • 2015-01-10
    • 1970-01-01
    • 2013-10-18
    • 1970-01-01
    • 2014-03-01
    相关资源
    最近更新 更多