Convertir archivos log a csv
Resuelto
lisarlt
-
Pierrecastor Mensajes publicados 10830 Fecha de registro Estado Moderador Última intervención -
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.
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
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-
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-
¿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-
--
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-
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í.
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í.
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-
¿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-
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.
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.