Resultados 1 al 7 de 7

Tema: Problema jodido [gawk]

  1. #1
    Becoming godsize Avatar de Mad Wizard
    Fecha de Ingreso
    11 ago, 04
    Ubicación
    Ushuaia, Tierra del Fuego
    Mensajes
    5,281

    Problema jodido [gawk]

    Bueno, resulta que mi jefe me planteo un desafio copado (mentira, me cago de arriba de un puente)... me puso a programar, yo obviamente no entiendo un soto de programación, y menos aún usandolo desde la consola del linux.

    El tema viene así, necesito incorporar a una herramienta de reporting los datos del messages del unix, obviamente, en el unix estan TODOS los datos del sistema, asi que el primer paso obviamente sería filtrar los datos que necesito sacar de ese messages buscando un string común, pongamosle string comun, entonces hago

    Código:
    grep "string comun" messages.1
    hasta ahí joya, me devuelve solamente los strings que contengan esa palabra clave en particular, separándolo del resto del diagnostico de sistema que no me interesa, ahora viene lo dificil, tengo que filtrar ese texto que saqué aún mas para poder incorporarlo a mi herramienta de reporting.

    Resulta ser que esta herramienta de reporting usa delimitadores por comas, entonces, tengo que formatear el texto de tal forma que separe los strings que yo quiero insertándole comas donde yo quiera.

    el output del grep da lo siguiente (por ejemplo)

    Código:
    Dec 01 00:25:14  name="String Comun" time="2050-12-01 0:25:14"
    entonces, lo que mi jefe me sugirió para cagarme bien la existencia, es que genere un script para que filtre el resultado del grep a este script y después lo pase a un archivo, quedando algo como:

    Código:
    grep "Mail Processed" messages.1 | gawk -f script.awk
    Eso lo que hace es pasar por el archivo script.awk el resultado del grep, hasta ahí bárbaro, ahora el kilombo viene en como carajo armar el script que es donde estoy trabadísimo.

    Resulta ser que el gawk toma como delimitadores por defecto el espacio, entonces si el output da:

    Código:
    Dec 01 00:25:14
    y yo hago:

    Código:
    print $1
    da como resultado

    Código:
    Dec
    si hago:

    Código:
    print $1,$2,$3
    da como resultado:

    Código:
    Dec 01 00:25:14
    perfecto!, ahora el bardo esta en

    Código:
    time="2050-12-01 0:25:14"
    si hago:

    Código:
    print $1
    me queda

    Código:
    time="2050-12-01
    y cague fuego, ya que cuando haga el segundo paso del script, que es agregar las comas a los $x que yo este seleccionando, va a quedar así

    Código:
    ,time="2050-12-01, 0:25:14",
    en vez de:

    Código:
    ,time="2050-12-01 0:25:14",
    La pregunta es entonces, COMO VERGA HAGO para que me quede así (el resultado final buscado):

    Código:
    ,Dec 01 00:25:14,  name="String Comun", time="2050-12-01 0:25:14",

    El que me contesta esta consulta se convierte automáticamente en mi nuevo ídolo...

  2. #2

    Re: Problema jodido [gawk]

    Espero las acotaciones de [K]ciNic[K] asi me rio un rato.

  3. #3
    Becoming godsize Avatar de Mad Wizard
    Fecha de Ingreso
    11 ago, 04
    Ubicación
    Ushuaia, Tierra del Fuego
    Mensajes
    5,281

    Re: Problema jodido [gawk]

    Somos 2

  4. #4

    Re: Problema jodido [gawk]

    No creo que te quede otra que usar un archivo auxiliar, pero tomalo como de quien viene, no soy ningun experto.

  5. #5
    not undercover anymore Avatar de KciNicK
    Fecha de Ingreso
    11 ago, 04
    Ubicación
    Ciudad de Formosa, Argentina
    Mensajes
    2,799

    Re: Problema jodido [gawk]

    pone ejemplo textual de lo que queres hacer, subime un pedazo del messages.1, si es solo como vos pusiste ahi entonces con esto te anda, igual, dudo que sea tan facil...
    Código:
    #!/bin/bash
    cat $1 | while read line; do
        aa=`echo $line |cut -b0-15`
        bb=`echo $line |cut -b16-35`
        cc=`echo $line |cut -b37-`
        echo ,$aa, $bb, $cc
    done
    se usa:

    $ ./chota.sh messages.1

    o

    $ ./chota.sh messages.1 > parsed.txt

  6. #6
    Becoming godsize Avatar de Mad Wizard
    Fecha de Ingreso
    11 ago, 04
    Ubicación
    Ushuaia, Tierra del Fuego
    Mensajes
    5,281

    Re: Problema jodido [gawk]

    Cita Iniciado por [K]ciNic[K] Ver Mensaje
    pone ejemplo textual de lo que queres hacer, subime un pedazo del messages.1, si es solo como vos pusiste ahi entonces con esto te anda, igual, dudo que sea tan facil...
    Código:
    #!/bin/bash
    cat $1 | while read line; do
        aa=`echo $line |cut -b0-15`
        bb=`echo $line |cut -b16-35`
        cc=`echo $line |cut -b37-`
        echo ,$aa, $bb, $cc
    done
    se usa:

    $ ./chota.sh messages.1

    o

    $ ./chota.sh messages.1 > parsed.txt

    Lo solucione con sed, haciendo sed lala | sed lala | sed lala hasta el infinito formateando 80 veces el texto, es una crotada, pero funciona =)

  7. #7
    Cristiano Zurdito Avatar de Emaus
    Fecha de Ingreso
    22 oct, 08
    Ubicación
    Service.Soft HQ
    Mensajes
    616

    Re: Problema jodido [gawk]

    no entendí un pomo pero bué...

Permisos de Publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •  

ESCORTS Capital Federal | ESCORTS Zona Sur | ESCORTS Zona Norte | ESCORTS Zona Oeste | ESCORTS Mar del Plata | ESCORTS La Plata | ESCORTS Cordoba | ESCORTS Rosario | ESCORTS Tucuman | Escorts Almagro | Escorts Belgrano | Escorts Caballito | Escorts Centro | Escorts Flores | Escorts Microcentro | Escorts Once | Escorts Palermo | Escorts Recoleta | Escorts Tribunales | Escorts Devoto | Escorts Villa Urquiza | Escorts Caba