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: USER1@1.159.11.110
SERVIDOR.000002 (2) [01/11/16 00:18:39 Get](1) ID and Password authentication failed. Invalid password for user USER2@18.22.12.23
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:
La cuestión es que no se como separar USER2@18.22.12.23 para que quede de esta forma USER2; 18.22.12.23#!/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 salida que requiero es así:
SERVIDOR.00001(1) ; [01/11/16 12:33:29 Get](1) ; Token authentication succeeded: USER1@1.159.11.110; USER1; 1.159.11.110
De antemano les agradezco mucho su tiempo y apoyo.
Saludos.