可能的重复:
从脚本输出中删除控制字符(包括控制台代码/颜色)
如果我们以这种模式将输出重定向到文件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
摆脱了大多数控制字符。