[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: