如何解析rsync stats数据?

时间:2014-01-11 09:32:57

标签: bash rsync automator

由于rsync使用-stats选项运行,我在日志结尾处得到类似下面的内容:

Number of files: 619
Number of files transferred: 0
Total file size: 134.50M bytes
Total transferred file size: 0 bytes
Literal data: 0 bytes
Matched data: 0 bytes
File list size: 22880
File list generation time: 0.250 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 22.90K
Total bytes received: 20

我想在自动贩卖机的通知中显示Number of files transferredTotal transferred file size。所以我应该以某种方式提取这些数据并进一步传递。我怎么能这样做? grep会帮助吗?

2 个答案:

答案 0 :(得分:3)

使用awk你可以这样做:

awk '/Number of files|Number of files/{print $NF}' file
619
0

如果你想要全线,那么:

awk '/Number of files|Number of files/' file
Number of files: 619
Number of files transferred: 0

答案 1 :(得分:0)

grep用于整行:

grep -e "Number of files transferred" -e "Total transferred file size"

仅将grep用于值:

grep -Po '(?<=Number of files transferred: |Total transferred file size: ).*'

使用perl更灵活:

perl -wne '/(.*): (.*)/ and $h{$1}=$2}{print "Number: $h{\"Number of files transferred\"}  Size: $h{\"Total transferred file size\"}\n"'