2014-01-11 30 views
1

由於rsync奔跑與-stats選擇的結果,我得到的東西像下面的日誌的末尾:如何解析rsync統計數據?

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會在這裏幫助嗎?

回答

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 
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"'