当使用 ncurses 库构建程序时,如何将输出重定向到文件

当使用 ncurses 库构建程序时,如何将输出重定向到文件

可能的重复:
从脚本输出中删除控制字符(包括控制台代码/颜色)

如果我们以这种模式将输出重定向到文件top >> somefile.txt,我们会在输出中得到很多垃圾值。但因为top有批处理(top -b -n1 >> somefile.txt)选项,文件输出是根据需要的。对于类似的程序,nethogs没有这样的选项。在这种情况下有什么好的输出方式吗?

答案1

您也可以尝试自己过滤掉垃圾。例如,这将删除所有不可打印的字符:

nethogs | sed 's,[^[:print:]],,g' >> somefile.txt

您可以根据需要扩展它,或者采取相反的方法,只允许显式的非垃圾通过,例如。 (字母数字和标点符号):

nethogs | sed 's,[^[:alnum:][:punct:]],,g' >> somefile.txt

如果输出是颜色编码的,则需要一些额外的工作来去除颜色转义字符串。

答案2

没有什么好的方法,但有时设置终端会有所帮助。

例如,

TERM=dumb top

摆脱了大多数控制字符。

相关内容