Foros del Web » Administración de Sistemas » Unix / Linux »

Una de sed: Extraer IPs de un archivo log

Estas en el tema de Una de sed: Extraer IPs de un archivo log en el foro de Unix / Linux en Foros del Web. Hola a todos. Acá que la tienen reclara con las expresiones regulares, les pregunto: Quiero sacar con sed, o la herramienta que uds quieran, las ...
  #1 (permalink)  
Antiguo 05/09/2007, 18:57
Avatar de AleSanchez
Colaborador
 
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires, Argentina
Mensajes: 3.692
Antigüedad: 19 años, 7 meses
Puntos: 47
Una de sed: Extraer IPs de un archivo log

Hola a todos.
Acá que la tienen reclara con las expresiones regulares, les pregunto:

Quiero sacar con sed, o la herramienta que uds quieran, las IPS que estan en un log que tengo de una aplicacion.

Las lineas son algo asi:
Código:
109  planetlab1.informatik.uni-erlangen.de 131.188.44.100 good
Lo que me interesa son las Ips.
Jugando con el grep, llegué a armar una expresion regular que me marca las IPs
Código:
cat logfile | grep "[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}" --color
Que me imprime las lineas y me pinta las IPs re lindo.
Ahora, ¿como hago para que me salga solo la IP que encuentra en la linea? Quiero hacerlo con sed, pero no me sale!

De este post: Unix Shell - how to extract IP from log saque las ideas, pero no pude llegar a hacerlo bien.

Saludos!

Saludos!
__________________
¡Volviendo a la programación!
  #2 (permalink)  
Antiguo 05/09/2007, 21:23
Avatar de ociomax
Colaborador
 
Fecha de Ingreso: mayo-2002
Ubicación: Temuco, Chile
Mensajes: 5.595
Antigüedad: 21 años, 10 meses
Puntos: 35
Re: Una de sed: Extraer IPs de un archivo log

¿La IP siempre va a estar como tercer elemento de la línea? SI es así, podrías usar awk:
Código:
awk -F' ' '{print $3}' logfile
__________________
Christian González, "OCIOMax"
http://chgonzalez.blogspot.com
http://twitter.com/chgonzalez
  #3 (permalink)  
Antiguo 06/09/2007, 06:56
Avatar de -Defero-
Colaborador
 
Fecha de Ingreso: julio-2004
Ubicación: Guipúzcoa
Mensajes: 4.776
Antigüedad: 19 años, 9 meses
Puntos: 76
Re: Una de sed: Extraer IPs de un archivo log

Empiezas por pedir ayuda a un buen hombre (man):

Cita:
man sed
Lees, lees, lees, y llegas a esto:

Cita:
-o, --only-matching muestra solamente la parte de una línea que
encaja con PATRÓN
Por cierto, no conocía el truco de [0-9]\{1,3\}, yo te iba a decir que usaras [0-9][0-9]*, que no es tan exacto.

PD: Puedes usar SORT para ordenarlas, y después UNIQUE para borrar las repetidas.

PD2: Creo que también se podría con GREP, usando también la opción -o.
__________________
abogado en Errenteria + procuradora en San Sebastián = equipo imparable
  #4 (permalink)  
Antiguo 06/09/2007, 07:46
Avatar de Koveart
Colaborador
 
Fecha de Ingreso: julio-2002
Ubicación: Colombia
Mensajes: 4.407
Antigüedad: 21 años, 8 meses
Puntos: 29
Re: Una de sed: Extraer IPs de un archivo log

Yo voto por la opción que propone ociomax, es mucho más sencillo.

Saludos
__________________
“Los soñadores no existen, se lo dice un soñador que ha tenido el privilegio de ver realidades que ni siquiera fue capaz de soñar”
  #5 (permalink)  
Antiguo 06/09/2007, 10:39
Avatar de AleSanchez
Colaborador
 
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires, Argentina
Mensajes: 3.692
Antigüedad: 19 años, 7 meses
Puntos: 47
Re: Una de sed: Extraer IPs de un archivo log

Pero saben que no tenia el detalle del log en realidad, puse el ejemplo asi pero no es una tabla estandard.
Es un archivo de texto que contiene informacion escrita ademas sobre esas Ips, no es una tabla de datos. ¿Me explico?

Y Defero, sos un grande !!!!! Como se me salteó la opcion -o del grep!!!!!!
Es justo lo que necesitaba.
Funcionó con esto:

Código:
cat opr0145O.txt | grep -o "[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}"
Saludos!!!!!
__________________
¡Volviendo a la programación!
  #6 (permalink)  
Antiguo 06/09/2007, 11:06
Avatar de Koveart
Colaborador
 
Fecha de Ingreso: julio-2002
Ubicación: Colombia
Mensajes: 4.407
Antigüedad: 21 años, 8 meses
Puntos: 29
Re: Una de sed: Extraer IPs de un archivo log

Bueno yo queria felicitar a Defero.tk porque veo que ya eres Colaborador lo cual engrandece aún más este foro.

Saludos
__________________
“Los soñadores no existen, se lo dice un soñador que ha tenido el privilegio de ver realidades que ni siquiera fue capaz de soñar”
  #7 (permalink)  
Antiguo 06/09/2007, 11:34
Avatar de -Defero-
Colaborador
 
Fecha de Ingreso: julio-2004
Ubicación: Guipúzcoa
Mensajes: 4.776
Antigüedad: 19 años, 9 meses
Puntos: 76
Re: Una de sed: Extraer IPs de un archivo log

Cita:
Iniciado por Koveart Ver Mensaje
Bueno yo queria felicitar a Defero.tk porque veo que ya eres Colaborador lo cual engrandece aún más este foro.

Saludos
Je, je, hace tiempo que lo soy. Aunque tampoco quiero darle mayor importancia al tema. Ya era "colaborador" antes de ser "Colaborador", en realidad nada cambia.

PD: AleSanchez, no sé si recordarás que hace tiempo pedí ayuda para un script que extrajera las direcciones de correo electrónico de un archivo (por cierto, tú mismo me diste algún buen consejo). Pues bien, ese script sigue estando en mi sistema, en /usr/bin/extraeremails.sh, así que he hecho:

Cita:
cat /usr/bin/extraeremails.sh
Y ahí he visto que en su día yo usé la opción -o. He ido al MANual para asegurarme de que ésa era la opción necesaria, y en efecto, ahí estaba.
__________________
abogado en Errenteria + procuradora en San Sebastián = equipo imparable

Última edición por -Defero-; 06/09/2007 a las 13:39
  #8 (permalink)  
Antiguo 06/09/2007, 12:04
Avatar de Koveart
Colaborador
 
Fecha de Ingreso: julio-2002
Ubicación: Colombia
Mensajes: 4.407
Antigüedad: 21 años, 8 meses
Puntos: 29
Re: Una de sed: Extraer IPs de un archivo log

Bueno de todos modos no sobra la felicitacion Defero.tk, porque no he estado muy activo ultimamente, pero si bueno en definitiva todos somos colaboradores, pero bueno simplemente que te dieron un espaldarazo a tu esfuerzo sin esperar nada a cambio. Gracias por tus posts y bueno siempre la comunidad seguirá adelante.

Saludos
__________________
“Los soñadores no existen, se lo dice un soñador que ha tenido el privilegio de ver realidades que ni siquiera fue capaz de soñar”
  #9 (permalink)  
Antiguo 05/10/2007, 07:53
 
Fecha de Ingreso: abril-2005
Ubicación: 34°35'49.20"S | 58°24'06.
Mensajes: 158
Antigüedad: 19 años
Puntos: 3
Re: Una de sed: Extraer IPs de un archivo log

tambien podrias haber utilizado
Código:
cat opr0145O.txt | grep -o "[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}" > solo_ips.txt 
  #10 (permalink)  
Antiguo 05/10/2007, 16:41
Avatar de -Defero-
Colaborador
 
Fecha de Ingreso: julio-2004
Ubicación: Guipúzcoa
Mensajes: 4.776
Antigüedad: 19 años, 9 meses
Puntos: 76
Re: Una de sed: Extraer IPs de un archivo log

Creo que con eso no le solucionas la duda, porque la única diferencia entre tu código y el suyo es que el suyo muestra el resultado en la pantalla, y el tuyo lo guarda en un archivo, cosa que AleSanchez sabe hacer perfectamente y por la que no había preguntado.

Pero de todas maneras se agradece tu buena voluntad.
__________________
abogado en Errenteria + procuradora en San Sebastián = equipo imparable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:26.