2015-01-04 2 views
-3

У меня есть пинг-файл, как этоткак извлечь параметры звона из файла в Баш скрипт

PING 172.17.9.1 (172.17.9.1) 1000(1028) bytes of data. 
1008 bytes from 172.17.9.1: icmp_seq=1 ttl=64 time=0.943 ms 
1008 bytes from 172.17.9.1: icmp_seq=2 ttl=64 time=0.855 ms 
1008 bytes from 172.17.9.1: icmp_seq=3 ttl=64 time=0.860 ms 
. 
. 
--- 172.17.9.1 ping statistics --- 
100 packets transmitted, 100 received, 0% packet loss, time 9958ms 
rtt min/avg/max/mdev = 0.836/1.710/37.591/4.498 ms 

Я хочу, чтобы извлечь потери пакетов, время, среднее RTT с Баш сценариев. что мне делать?! Благодаря

+0

Проверьте это: http://stackoverflow.com/questions/8314219/how-to-get-the -percent-of-packets-received-from-ping-in-bash И сделайте собственные выводы – tomloprod

+1

Вы должны начать с чтения [ask]. «Man grep» и «man sed» могли бы помочь. – jm666

+0

Я новичок здесь, Спасибо, в любом случае! – sgh

ответ

1

Попробуйте что-то вроде:

awk -F',|/' '/time/{x=$3$4}/rtt/{print x " " $5}' ping.txt | sed 's/[^0-9 .]*//g' 
Output: 
0 958 1.710 
+0

Спасибо, но я просто хочу цифры, а не строки между ними. – sgh

+0

Вы можете просто удалить все сообщения персонажей, как '| sed 's/[^ 0-9] * // g', или вы можете использовать gsub для удаления всех символов, отличных от цифр. См. Отредактированный ответ. Я использовал sed, поскольку я не хотел усложнять awk. – SMA

+0

Он также удаляет точку в номере с плавающей запятой! – sgh

1

Вы можете awk в

$ awk -F"[,/]" '/packet loss/{print $3} /rtt/{print " rtt",$2,$5}' input 
0% packet loss 
rtt avg 1.710