Convertir archivos log a csv

Resuelto
lisarlt -  
Pierrecastor Mensajes publicados 10830 Fecha de registro   Estado Moderador Última intervención   -
Hola,

Dispongo de varios archivos de registro (presentes en una carpeta llamada inputs) que me gustaría poder transformar en un solo archivo csv en un script shell.
Pensé que primero sería necesario agruparlos en un mismo archivo de registro (result.log)?
He escrito:
cat ./inputs/*.log > ./inputs/result.log;
for i in `find ./inputs`
do
echo ${i}
echo "$(cat ${i})"
done;

¿Cómo puedo pedir que el archivo se transforme en csv?
Gracias de antemano.

3 respuestas

  1. Pierrecastor Mensajes publicados 10830 Fecha de registro   Estado Moderador Última intervención   4 215
     
    Hola,

    Técnicamente, un archivo csv y un archivo log no son más que archivos de texto con una extensión diferente.

    Normativamente, el csv contiene información jerarquizada separada por puntos y comas que pueden ser importados en una hoja de cálculo o en una base de datos.

    En resumen, sin saber más precisamente qué es lo que quieren hacer, es difícil responder.

    Para el código, tienen la etiqueta code sh en el foro para mantener el formato. Es la flecha a la derecha del ícono <>
    --
    Enciende un fuego para alguien y estará caliente el resto del día. Quema a un hombre y estará caliente por el resto de su vida. -Terry Pratchett-
    0
    1. lisarlt
       
      Gracias por su respuesta y por la precisión sobre la etiqueta de código, es la primera vez que escribo aquí.
      Mis archivos de registro están compuestos por 3 columnas de números sencillos que permiten hacer un inventario anual del número de productos que tengo.
      Por lo tanto, estos archivos están presentes en mi estructura de carpetas en la carpeta inputs.
      Sin embargo, para visualizarlos, ejecutaba cada archivo y recuperaba su contenido para agruparlos en un archivo excel manualmente.
      Me gustaría automatizar todo esto y, por lo tanto, ejecutar un solo script shell que me enviara por correo el archivo csv que agrupa todos los datos de los registros.
      No sé si mi explicación es lo suficientemente clara...
      Soy muy novato en shell.
      0
  2. Pierrecastor Mensajes publicados 10830 Fecha de registro   Estado Moderador Última intervención   4 215
     
    ¿Puedes poner un ejemplo de archivo de registro aquí?

    --
    Enciende un fuego para alguien y estará caliente el resto del día. Prende fuego a un hombre y estará caliente el resto de su vida. -Terry Pratchett-
    0
    1. lisarlt
       
      semana año max_conns

      29 2021 35
      28 2021 42
      27 2021 43
      26 2021 41
      25 2021 39
      24 2021 75
      23 2021 45
      22 2021 63
      21 2021 59
      20 2021 82
      19 2021 81
      18 2021 56
      17 2021 47
      16 2021 37
      15 2021 48
      14 2021 44
      13 2021 53
      12 2021 54
      11 2021 125
      10 2021 44
      9 2021 46
      8 2021 72
      7 2021 45
      6 2021 40


      He hecho una simple copia y pega. Todos parecen más o menos así.
      0
  3. Pierrecastor Mensajes publicados 10830 Fecha de registro   Estado Moderador Última intervención   4 215
     
    Ok, debe importarse sin problemas, aunque habrá redundancias con los títulos de las columnas: week year max_conns

    ¿Funciona el script de concatenación? ¿Qué devuelve?
    --
    Enciende un fuego para alguien y estará caliente el resto del día. Quema a un hombre y estará caliente el resto de su vida. -Terry Pratchett-
    0
    1. lisarlt
       
       cat ./inputs/*.log > ./inputs/result.log; for i in `find ./inputs` do echo ${i} echo "$(cat ${i})" done; 


      He escrito hasta ahora este script.
      La ejecución de este script me devuelve en la consola todos los logs uno tras otro y crea un archivo result.log que los contiene.
      Y después, no sé qué hacer. He investigado, pero no sé cómo crear el archivo csv, por lo que no he escrito nada más que funcione.
      0
      1. Pierrecastor Mensajes publicados 10830 Fecha de registro   Estado Moderador Última intervención   4 215 > lisarlt
         
        Solo hay que renombrarlo :

        mv result.log result.csv
        0
      2. lisarlt > Pierrecastor Mensajes publicados 10830 Fecha de registro   Estado Moderador Última intervención  
         
        ¡Ahhh, no lo sabía! Pero ¡funciona!
        Muchas gracias, perdona por la pérdida de tiempo...
        0
      3. Pierrecastor Mensajes publicados 10830 Fecha de registro   Estado Moderador Última intervención   4 215 > lisarlt
         
        Como decía antes, solo cambia la extensión.

        Incluso debería haber forma de eliminar las dos primeras líneas de cada archivo para evitar tener "week year max_conns " al volver a dar en las columnas, pero eso sobrepasa mi nivel de bash.

        Y no es tiempo perdido, sino compartido. ;-)
        0