gpt4 book ai didi

unix - 如何在没有回车的情况下显示日志文件的 rsync 进度?

转载 作者:行者123 更新时间:2023-12-04 00:53:37 27 4
gpt4 key购买 nike

我有一个来自 rsync 命令的日志文件,其中有进度。运行此进度时,会更新同一行上的显示信息。当我捕获此命令的输出时,我得到一个在终端上使用 cat 正常显示的文件(重播所有退格键和重新编辑)但我希望能够使用 grep 在文件上并对其进行处理,以便我看到所有退格编辑命令。我如何处理该文件以删除所有进度更新并仅获取具有最终编辑的文件?

最佳答案

如果您想查看捕获的文件的外观,而进度线不会覆盖之前的进度线:

sed 's/\r/\n/g' capture-file

这可能会产生这样的结果:

created directory /some/dest/dir
filename

32768 0% 0.00kB/s 0:00:00
6717440 21% 6.38MB/s 0:00:03
13139968 41% 6.25MB/s 0:00:02
19791872 62% 6.28MB/s 0:00:01
26214400 82% 6.24MB/s 0:00:00
31784420 100% 6.25MB/s 0:00:04 (xfer#1, to-check=0/1)

sent 31788388 bytes received 31 bytes 3346149.37 bytes/sec
total size is 31784420 speedup is 1.00

如果您只想查看进度消息的最后一步并删除前面的消息:

sed 's/.*\r/\n/g' capture-file

可能看起来像这样:

created directory /some/dest/dir
filename

31784420 100% 6.25MB/s 0:00:04 (xfer#1, to-check=0/1)

sent 31788388 bytes received 31 bytes 3346149.37 bytes/sec
total size is 31784420 speedup is 1.00

您可以使用 --log-file=name 选项运行 rsync 以在文件中捕获日志信息。将“名称”替换为您想要的名称。您可以使用 log-file-format 选项控制记录的信息(有关详细信息,请参阅 man rsyncd.conf 中的日志格式部分)。

在我的系统上,默认的 rsync 日志文件如下所示:

2009/11/01 17:19:20 [23802] building file list
2009/11/01 17:19:20 [23802] created directory /some/dest/dir
2009/11/01 17:19:25 [23802] <f+++++++++ filename
2009/11/01 17:19:25 [23802] sent 31788388 bytes received 31 bytes 3346149.37 bytes/sec
2009/11/01 17:19:25 [23802] total size is 31784420 speedup is 1.00

关于unix - 如何在没有回车的情况下显示日志文件的 rsync 进度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1658611/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com