Siguiendo un registro awked

Esto es lo que me molesta:

Tengo un archivo de registro, escrito en un formato específico, como:

[DEBUG    7] 2012-06-12 09:26:37.847 [MOD: UNK/0 ] [FILE:ModuleManager.cpp:541] [FUNC: ModuleManager::handleStatusRequestMessage] [MSG:Got request for unsupported ALLOCATION_STATUS ]

por lo que los bloques están bastante bien separados. Estoy viendo este registro a través de una cola, en una pantalla de terminal de 80x25 y se ve horrible (no, no puedo cambiar la pantalla, es un dispositivo integrado).

¿Me pueden ayudar a crear una combinación de cola/awk (o similar) para lograr algo como:

2012-06-12 09:26:37.847 Got request for unsupported ALLOCATION_STATUS

or

2012-06-12 09:26:37.847 ModuleManager::handleStatusRequestMessage - Got request for unsupported ALLOCATION_STATUS

or

2012-06-12 09:26:37.847 ModuleManager.cpp:541 ModuleManager::handleStatusRequestMessage - Got request for unsupported ALLOCATION_STATUS

de la larga línea de arriba?

Muchas Gracias

preguntado el 12 de junio de 12 a las 10:06

No cambies tu pantalla. ¡En su lugar, conviértase en un defensor del texto de 80 columnas! Salida, registros, código fuente, todo en 80 columnas. Dile a tus amigos; no es solo una reliquia de los años 70. ¡Es una gran idea tanto para el futuro como para el pasado! -

@WilliamPursell: Dos palabras: "monitores grandes". -

@Dennis Monitores grandes en los que puedo mostrar 6-8 archivos uno al lado del otro, ¡a menos que uno de ellos use 120 columnas por línea! -

@Dennis Cuatro palabras: "Malos ojos, fuentes grandes" -

2 Respuestas

$ awk -F '[][]' '{print $3, $10}' logfile
2012-06-12 09:26:37.847  MSG:Got request for unsupported ALLOCATION_STATUS
$ awk -F '[][]' '{print $3, $8, $10}' logfile
 2012-06-12 09:26:37.847  FUNC: ModuleManager::handleStatusRequestMessage MSG:Got request for unsupported ALLOCATION_STATUS
$ awk -F '[][]' '{print $3, $6, $8, $10}' logfile
 2012-06-12 09:26:37.847  FILE:ModuleManager.cpp:541 FUNC: ModuleManager::handleStatusRequestMessage MSG:Got request for unsupported ALLOCATION_STATUS

or

$ awk -F '[][]|MOD:|FUNC:|FILE:|MSG:' '{print $3, $8, $11 " - " $14}' inputfile
2012-06-12 09:26:37.847  ModuleManager.cpp:541  ModuleManager::handleStatusRequestMessage - Got request for unsupported ALLOCATION_STATUS

Respondido el 12 de junio de 12 a las 11:06

combinado con la cola es perfecto: tail -f log.txt | awk -F '[][]' '{print $3, $10}' - Ferenc Deak

Yo sugeriría sed para un formato radical aniquilar:

tailf -f logfile | sed -e 's/\[MSG:\([^]]*\)\]/\1/' -e 's/\[[^]]*\] *//g'

Respondido el 12 de junio de 12 a las 10:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.