El 29/11/18 a las 2:39, Rick Gutierrez escribió:
Hola lista , tengo un script que me saca los intentos fallidos de mis
cuentas de correo , este script lo paso a un txt , y de ahi necesito
sacar a otro txt que el ip que cumpla con 8 intentos fallidos o mas se
escriba en ese ultimo txt .
el formato o la salida de los intentos fallidos es el siguiente.
[8] logins from IP 132.245.51.221 []
Failed [ 8] : using pop [ 8]
[ 3] logins from IP 152.231.32.255 []
Failed [ 3] : using pop [ 3]
he intentando con grep , pero sin resultados.
alguien que me de una ayuda de bash ;)
Es bastante sencillo, sólo tines que extraer el número de veces y la ip,
el resto lo despreciamos.
Por ejemplo el fichero prueba.txt contiene:
[8] logins from IP 132.245.51.221 []
[3] logins from IP 152.231.32.255 []
[8] logins from IP 152.231.32.254 []
[3] logins from IP 152.231.32.253 []
[11] logins from IP 152.231.32.252 []
[7] logins from IP 152.231.32.251 []
[3] logins from IP 152.231.32.250 []
La extracción con sed que obtiene el número de veces y la ip y se lanza
a un blucle que lee esos dos valores, luego sólo un condicional:
sed -n -e 's/\[\([0-9]\+\)\] logins from IP \([0-9.]\+\) .*/\1 \2/p'
prueba.txt | while read n ip; do
[ $n -ge 8 ] && echo $ip
done
la salida es:
132.245.51.221
152.231.32.254
152.231.32.252
--
Eduardo