由于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 transferred
和Total transferred file size
。所以我应该以某种方式提取这些数据并进一步传递。我怎么能这样做? grep
会帮助吗?
答案 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"'