避免在 linux 中将进度条写入文件

Avoid writing progress bars to file in linux

我有一个打印输出的进程,但此输出还包括加载栏。

我想将此输出写入文件并显示此输出。

通常我可以这样做:

./my_process.sh | tee -a my_log_file.txt

./my_process.sh >> my_log_file.txt
tail -f my_log_file.txt

这会将所有内容打印到我的终端,但它也会将所有内容打印到日志文件,包括进度条的每个步骤!

我想从打印到日志文件中排除进度条迭代。

出于我的目的,任何带有回车 return 的行都可以从日志文件中排除。如何排除回车 return 行附加到日志文件,同时仍将它们打印到终端上的标准输出?

您可以在登录前过滤 T 恤

例如

$ echo -e "progress_ignore\r\nlog this\nprogress_ignore\r" | tee >(awk '!/\r/' >> output.log)
progress_ignore
log this
progress_ignore

$ cat output.log
log this