我在 shell 中运行了一个程序并将输出重定向到一个文件。
涉及的程序显示大量移动进度条等。因此输出文件包含特殊字符,例如\r
覆盖这些栏中的行。当我cat
输入文件时,进度条会重新渲染,这可能会在 ssh 上花费大量时间。
如何创建仅保存进度条最终状态的文本文件?
答案1
答案2
假设该角色\r
是唯一的并且您的台词构成如下
X\rXX\rXXX\rXXXX\rXXXXX
你可以使用 sed 删除最后一个之前的所有内容\r
$ echo $'X\rXX\rXXX\rXXXX\rXXXXX' >myfile
$ sed 's/^.*\r//' myfile
XXXXX
$