Renseignement sur awk
Résolu
guitou429
Messages postés
198
Date d'inscription
Statut
Membre
Dernière intervention
-
bob031 Messages postés 8158 Date d'inscription Statut Membre Dernière intervention -
bob031 Messages postés 8158 Date d'inscription Statut Membre Dernière intervention -
Bonjour tout le monde,
Je voudrais savoir ce que signifie la ligne suivante exactement :
count1=$(ping -c 4 192.168.1.10 | grep 'received' | awk -F',' '{ print $2 }' | awk '{ print $1 }')
D'après ce que je comprend :
On effectue une requete ping de l'adresse 192.168.1.10 et on analyse les 4 premieres lignes de la reponse.
On compte le nmbre de fois où on trouve le mot 'received'.
Mais que signifie la fin : | awk -F',' '{ print $2 }' | awk '{ print $1 }'
Je vous remercie pour vos futures explications !
Je voudrais savoir ce que signifie la ligne suivante exactement :
count1=$(ping -c 4 192.168.1.10 | grep 'received' | awk -F',' '{ print $2 }' | awk '{ print $1 }')
D'après ce que je comprend :
On effectue une requete ping de l'adresse 192.168.1.10 et on analyse les 4 premieres lignes de la reponse.
On compte le nmbre de fois où on trouve le mot 'received'.
Mais que signifie la fin : | awk -F',' '{ print $2 }' | awk '{ print $1 }'
Je vous remercie pour vos futures explications !
2 réponses
Salut,
awk -F',' '{ print $2 }' En indiquant que le délimiteur de chanps sera la virgule (-F',') on demande d'afficher le second champ ($2) awk '{ print $1 }') Avec le délimiteur par défaut (espace ou tabulation), on affiche le 1er champ ($1);-))
Bonjour,
ping -c 4 = on lance 4 ping ..........................."et pi c'est tout"
grep 'received' = on filtre les résultats du ping avec le mot "received"
puis on traîte, avec awk, les lignes filtrées, en récupérant le champs 2 qui est retraîté à nouveau par awk pour récupérer le champs 1 !
faut pas hésiter à tester soit-même pour comprendre .....
ping -c 4 = on lance 4 ping ..........................."et pi c'est tout"
grep 'received' = on filtre les résultats du ping avec le mot "received"
puis on traîte, avec awk, les lignes filtrées, en récupérant le champs 2 qui est retraîté à nouveau par awk pour récupérer le champs 1 !
> redfox@mandriva[192.168.1.2]:~/Desktop$ ping -c 4 192.168.1.1 PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data. 64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.788 ms 64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.788 ms 64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=0.760 ms 64 bytes from 192.168.1.1: icmp_seq=4 ttl=64 time=0.788 ms --- 192.168.1.1 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3000ms rtt min/avg/max/mdev = 0.760/0.781/0.788/0.012 ms > redfox@mandriva[192.168.1.2]:~/Desktop$ ping -c 4 192.168.1.1 | grep 'received' 4 packets transmitted, 4 received, 0% packet loss, time 3000ms > redfox@mandriva[192.168.1.2]:~/Desktop$ > redfox@mandriva[192.168.1.2]:~/Desktop$ ping -c 4 192.168.1.1 | grep 'received' | awk -F',' '{ print $2 }' 4 received > redfox@mandriva[192.168.1.2]:~/Desktop$ ping -c 4 192.168.1.1 | grep 'received' | awk -F',' '{ print $2 }' | awk '{ print $1 }' 4 > redfox@mandriva[192.168.1.2]:~/Desktop$
faut pas hésiter à tester soit-même pour comprendre .....
tes explications sont plus précises !
merci.
:-)