Foros del Web » Programación para mayores de 30 ;) » Programación General »

Script bash cortar/obtener usuario y dominio de un log

Estas en el tema de Script bash cortar/obtener usuario y dominio de un log en el foro de Programación General en Foros del Web. Estimados buenas noches: Solicito de su apoyo de favor para realizar un script en bash que lea un log el cual tiene la siguiente estructura: ...
  #1 (permalink)  
Antiguo 04/02/2016, 21:32
 
Fecha de Ingreso: julio-2012
Mensajes: 18
Antigüedad: 11 años, 8 meses
Puntos: 0
Exclamación Script bash cortar/obtener usuario y dominio de un log

Estimados buenas noches:

Solicito de su apoyo de favor para realizar un script en bash que lea un log el cual tiene la siguiente estructura:

SERVIDOR.00001(1) [01/11/16 12:33:29 Get](1) Token authentication succeeded: [email protected]
SERVIDOR.000002 (2) [01/11/16 00:18:39 Get](1) ID and Password authentication failed. Invalid password for user [email protected]

Lo que intento hacer es separar el usuario y el dominio, ya que necesito insertarlos en una bd pero no se como separlos.

Lo que he realizado es ya una limpieza previa del log del cual separe esos dos eventos que mostre arriba, mi script es el siguiente:

Código:
#!/bin/bash

#con esto filtro solo los eventos que necesito
cat log.log | egrep -w "authentication succeeded|Password authentication failed" | tr -d '[' >> nuevolog.txt

LOG="/root/Documents/nuevolog.txt"

#con este separo la linea en varios segmentos para separarlos por ";" y asi cargarlos posteriormente en una base de datos
< $LOG awk '{print $1" "$2 " ; " $3" "$4 " ; " $7" "$8" "$9" "$10" "$11" "$12" "$13" "$14" "$15" "$16" "$17}' >> log.csv
La cuestión es que no se como separar [email protected] para que quede de esta forma USER2; 18.22.12.23
la salida que requiero es así:

SERVIDOR.00001(1) ; [01/11/16 12:33:29 Get](1) ; Token authentication succeeded: [email protected]; USER1; 1.159.11.110


De antemano les agradezco mucho su tiempo y apoyo.

Saludos.
  #2 (permalink)  
Antiguo 05/02/2016, 07:18
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Script bash cortar/obtener usuario y dominio de un log

Primero que nada, y quizás no te sirva la sugerencia pero en caso de que sí seguramente te ahorre dolores de cabeza: si te es posible, modifica la forma en la que la aplicación escribe su log.

Segundo, la solución no es perfecta pero sí práctica: awk admite más de un caracter como separador de campos, usa

awk -F'[ @]'

(el modificador -F indica qué caracteres usar como separadores, en este caso espacio y @) y tendrás "USER2" y "18.22.12.23" en campos diferentes. Claro, si "@" puede aparecer ocasionalmente en otras partes de la línea, te puede generar problemas, pero si no, es la solución.


Saluods.
  #3 (permalink)  
Antiguo 06/02/2016, 23:12
 
Fecha de Ingreso: julio-2012
Mensajes: 18
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Script bash cortar/obtener usuario y dominio de un log

Estimado ALvaroG muchas gracias por tu tiempo y apoyo, la segunda solución que me diste me ayudo... la primera no era posible realizarla pero muchas gracias. ya quedo.

Saludos...

Etiquetas: Ninguno
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 18:32.