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

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
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
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
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
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
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
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
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
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