Text-Processing

如何從文本文件中提取和排序 ping 時間到另一個文本文件/列表中

  • September 29, 2021

我有一個日誌文件,其中包含來自某個網站的 ping 的文本文件,稱為pingoutput.txt按行分隔每個 ping 回复。現在我需要從這個文本文件中提取往返時間,time=然後將其提取ms到另一個文本文件或列表中,然後我可以從最小到最大排序。

64 bytes from onofri.org (67.222.36.105): icmp_req=1 ttl=47 time=202 ms
64 bytes from onofri.org (67.222.36.105): icmp_req=2 ttl=47 time=206 ms
64 bytes from onofri.org (67.222.36.105): icmp_req=3 ttl=47 time=215 ms

pingoutput.txt文件也很大,大約有 86400 行。我正在通過 Linux 上的 shell 腳本執行此操作。

這對我有用:

sed 's/.*time=\([0-9]*\) .*/\1/' times | sort -n > outfile

times這個文件在哪裡:

cat times 
64 bytes from onofri.org (67.222.36.105): icmp_req=1 ttl=47 time=202 ms
64 bytes from onofri.org (67.222.36.105): icmp_req=2 ttl=47 time=206 ms
64 bytes from onofri.org (67.222.36.105): icmp_req=3 ttl=47 time=215 ms

outfile看起來像這樣:

cat outfile 
202
206
215

您還可以使用 Perl 正則表達式和 grep

grep -oP '(?<=time\=).*' pingoutput 

引用自:https://unix.stackexchange.com/questions/312922