Tengo un proyecto en el que estoy trabajando para trabajar. El script que estoy creando inicialmente toma dos argumentos: uno es un identificador único y el otro es para un archivo de registro (ambas cadenas). Ahora ya he hecho la primera parte, que es el análisis del identificador único. Pero la segunda parte consiste en analizar un fragmento específico de cadena que es una cadena de números y letras generada aleatoriamente.
Estoy usando una awk
declaración para obtener esta cadena aleatoria y he verificado que mi expresión es correcta en Rubular. Pero cuando intento probar el código con más, no se imprime nada. Esto es lo que escribí en la línea de comando:
awk '/\s=\s[a-zA-Z0-9-]+/ {print }' ~/jlog/server.log | more
Esto es lo que tengo en mi guión:
for j in $(cat ~/jlog/"$2"); do awk '/'"$1"'/\s=\s[a-zA-Z0-9-]+/ {print}'
Y aquí una parte del registro que estoy analizando:
2014-06-17 15:34:52,406 INFO [random.random.xxx.message.Random] Processed instance (1.2.840.113619.2.284.3.2013961368.890.1402186239.15
5/1.2.840.113619.2.80.1944071037.22604.1402323463.136) from [email protected] to Random_AE. AssociationID = 9eddb1b0-368e-4fb9-a684-44cc14be389c
Estoy buscando específicamente el código aleatorio después del ID de la asociación. ¿Hay alguna sugerencia sobre cómo mostrar los resultados? Estoy recién sin ideas.
Respuesta1
Por favor, inténtalo
awk '$3=="INFO" && $(NF-2)=="AssociationID" && $(NF-1)=="=" { print $NF }' ~/jlog/server.log
Al pasarle el nombre del archivo de registro directamente, awk
puede evitar el uso de for
y cat
también.