我有一个来自 rsync 命令的日志文件,有进度。运行此进度时,会更新同一行上的显示信息。当我捕获此命令的输出时,我得到一个cat
在终端上正常显示的文件(所有退格和重新编辑都会重播),但我希望能够grep
在该文件上使用并处理它,以便我看到所有退格编辑命令。如何处理文件以删除所有进度更新并仅获取具有最终编辑的文件?
如果您想查看捕获的文件的样子,而没有进度线覆盖以前的进度线:
sed 's/\r/\n/g' capture-file
Run Code Online (Sandbox Code Playgroud)
这可能会产生这样的结果:
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
Run Code Online (Sandbox Code Playgroud)
如果您只想查看进度消息的最后一步并消除前面的步骤:
sed 's/.*\r/\n/g' capture-file
Run Code Online (Sandbox Code Playgroud)
可能看起来像这样:
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
Run Code Online (Sandbox Code Playgroud)
您可以rsync
使用--log-file=name
在文件中捕获日志信息的选项运行。将“名称”替换为您想要的名称。您可以使用该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
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5246 次 |
最近记录: |