Reading ping output using readtable
Afficher commentaires plus anciens
I'm creating a text file with ping results (on Linux) that looks like this (timestamp at start).
PING 172.17.102.60 (172.17.102.60) 56(84) bytes of data.
[1707403470.450935] 64 bytes from 172.17.102.60: icmp_seq=1 ttl=64 time=0.378 ms
[1707403471.452695] 64 bytes from 172.17.102.60: icmp_seq=2 ttl=64 time=0.248 ms
[1707403472.482987] 64 bytes from 172.17.102.60: icmp_seq=3 ttl=64 time=0.337 ms
I can read it using readtable:
511×9 table
Var1 Var2 Var3 Var4 Var5 Var6 Var7 Var8 Var9
_______________________ ____ _________ ________ __________________ ________________ __________ ______________ ______
{'[1707403470.450935]'} 64 {'bytes'} {'from'} {'172.17.102.60:'} {'icmp_seq=1' } {'ttl=64'} {'time=0.378'} {'ms'}
{'[1707403471.452695]'} 64 {'bytes'} {'from'} {'172.17.102.60:'} {'icmp_seq=2' } {'ttl=64'} {'time=0.248'} {'ms'}
{'[1707403472.482987]'} 64 {'bytes'} {'from'} {'172.17.102.60:'} {'icmp_seq=3' } {'ttl=64'} {'time=0.337'} {'ms'}
How can I extract the timestamps from Var1 and the times from Var8? I think I should be using cellfun, but I don't know how to.
4 commentaires
Dyuman Joshi
le 8 Fév 2024
Modifié(e) : Dyuman Joshi
le 8 Fév 2024
Dyuman Joshi
le 12 Fév 2024
Did you check the answers submitted below?
dormant
le 29 Fév 2024
Walter Roberson
le 29 Fév 2024
ping sometimes produces results such as
Request timeout for icmp_seq 2
In theory your code has to handle these as well.
Réponse acceptée
Plus de réponses (1)
Here is an easy way to import all numeric data as numeric, and with minimal post-processing for the datestamp:
T = readtable("testping.txt", 'Delimiter',[" ","=","]","["], "LeadingDelimitersRule","ignore", "MultipleDelimsAsOne",true)
T.Var1 = datetime(T.Var1, "ConvertFrom","posixtime")
Catégories
En savoir plus sur Text Data Preparation dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!