如何在用换行符替换回车 returns 后将终端中的 dd 进度重定向到日志文件

How to redirect dd progress in terminal to a log file after replacing carriage returns with newline characters

知道为什么这个命令不起作用吗?

dd if=/dev/zero of=/dev/null status=progress |& tr '\r' '\n' >> test.txt

我希望 test.txt 的内容看起来像这样。

395191296 bytes (395 MB, 377 MiB) copied, 1 s, 395 MB/s
805187584 bytes (805 MB, 768 MiB) copied, 2 s, 403 MB/s
1239563264 bytes (1.2 GB, 1.2 GiB) copied, 3 s, 413 MB/s
1666015232 bytes (1.7 GB, 1.6 GiB) copied, 4 s, 417 MB/s

现在命令没有向 test.txt

打印任何内容

使用 T 恤 例如:

dd if=/dev/zero of=/dev/null status=progress 2>&1 | tee test

那么你可以用\n替换\r或者用nano

打开

都是因为tr等待它的工作完成,这将花费无限的时间。

unbuffer 在这种情况下可以帮助你:

dd if=/dev/zero of=/dev/null status=progress |& unbuffer -p tr '\r' '\n' >>test.txt