2016-09-23 46 views
0

我是shell腳本編程新手,因此對linux命令的知識非常少。我正在主持10次主機。我想知道,如何得到沒有。的數據包成功傳輸。例如檢查ping命令的統計/成功傳輸

ping -c 10 12.1.4.1 
    PING 12.1.4.1 (12.1.4.1) 56(84) bytes of data. 
    64 bytes from 12.1.4.1: icmp_seq=1 ttl=128 time=439 ms 
    64 bytes from 12.1.4.1: icmp_seq=2 ttl=128 time=577 ms 
    64 bytes from 12.1.4.1: icmp_seq=3 ttl=128 time=435 ms 
    64 bytes from 12.1.4.1: icmp_seq=4 ttl=128 time=483 ms 
    64 bytes from 12.1.4.1: icmp_seq=5 ttl=128 time=519 ms 
    64 bytes from 12.1.4.1: icmp_seq=6 ttl=128 time=487 ms 
    64 bytes from 12.1.4.1: icmp_seq=7 ttl=128 time=470 ms 
    64 bytes from 12.1.4.1: icmp_seq=8 ttl=128 time=516 ms 
    64 bytes from 12.1.4.1: icmp_seq=9 ttl=128 time=467 ms 
    64 bytes from 12.1.4.1: icmp_seq=10 ttl=128 time=544 ms 

    --- 12.1.4.1 ping statistics --- 
    10 packets transmitted, 10 received, 0% packet loss, time 9013ms 
    rtt min/avg/max/mdev = 435.527/494.221/577.189/42.922 ms 

輸出應該是10

我可以將輸出重定向到一個文件,然後使用剪切/ sed命令來獲得獲得「10」的數據包的價值,但我想在一個做在ping命令之後。

回答

0

我們只需要選擇包含字行的第四列「包」:

ping -c 10 12.1.4.1 | egrep packets | cut -d" " -f4 
+0

沒有,這個數字將贈品是10.也許'傳輸/ awk的「/包{打印$ 4} ''而不是,這對間距變化也更加穩健。 – tripleee

+0

你說得對,@tripleee。我已經更新了答案。謝謝! –

+0

當然。用awk也能工作=) –