Re: adresses IP dans fichier log
hého a écrit, mardi 15 juillet 2008, à 23:22 :
> Jacques L'helgoualc'h a écrit, le 14.07.2008 16:45 :
[...]
> > wget -q -O - http://checkip.dyndns.org/ | sed -re 's/^.*: ([0-9.]+).*/\1/'
> >
> d'ac ;)
>
> > wget ... | awk -F'[ <]' '{print $(NF-2)}'
> >
> là j'ai pas compris le coup du double "field separator"
>
> pourquoi awk prend le $(NF-2) sur "<" et pas sur " " ?
Le « FS » est une regexp, la classe des deux caractères encadrant
l'expression à extraire :
$ wget -q -O - http://checkip.dyndns.org/
<html><head><title>Current IP Check</title></head><body>Current IP Address: 92.129.89.113</body></html>
Comme j'ai la flemme de compter les champs à gauche, je vois à droite
deux "<" et aucun espace (NF = nombre de champs).
J'ai eu de la chance, pas d'espace traînant en fin de ligne, mais il
serait plus sûr d'utiliser -F': |<' ... et en remplaçant $(NF-2) par
$8, c'est encore plus court !
wget -q -O- checkip.dyndns.org|awk -F': |<' '{print$8}'
(il y a un champ $1 vide à gauche du premier "<").
Si tu ne veux pas compter jusqu'à huit,
... | awk -F'Address: |</body' '{print$2}'
> cordialement
aussi,
--
Jacques L'helgoualc'h
Reply to: