2014-01-11 3 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 transferred и Total transferred file size в уведомлении Automator в. Поэтому я должен как-то извлечь эти данные и пройти дальше. Как я могу это сделать? Будет 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"' 
Смежные вопросы