Convertir fichiers log en csv

Résolu
lisarlt -  
Pierrecastor Messages postés 41491 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

Je dispose de plusieurs fichiers log (présents dans un dossier appelé inputs) que j'aimerai pouvoir transformer en un seul fichier csv dans un script shell.
Je me suis dit qu'il fallait d'abord que je les regroupe dans un même fichier log (result.log) ?
J'ai écrit :
cat ./inputs/*.log > ./inputs/result.log;
for i in `find ./inputs`
do
echo ${i}
echo "$(cat ${i})"
done;

Comment puis je demander que le fichier se transforme en csv ?
Merci d'avance
A voir également:

3 réponses

Pierrecastor Messages postés 41491 Date d'inscription   Statut Modérateur Dernière intervention   4 149
 
Salut,

Techniquement, un fichier csv et un fichier log ne sont que des fichiers textes avec une extension différente.

Normativement, le csv comporte des informations hiérarchisé séparé par des point virgules pouvant être importé dans un tableur ou une base de donnée.

En gros, sans savoir plus précisément ce que vous voulez faire, difficile de répondre.


Pour le code, vous avez la balise code sh sur le forum pour garder la mise en forme. C'est la flèche à droite de l’icône <>
0
lisarlt
 
Merci pour votre réponse et pour la précision sur la balise code, c'est la première fois que j'écris ici.
Mes fichiers log sont composés de 3 colonnes de chiffres toutes simples permettant de faire un inventaire sur l'année du nombre de produits que j'ai.
Ces fichiers sont donc présents dans mon arborescence dans le dossier inputs.
Néanmoins afin de les visualiser, j'exécutais chaque fichier et récupais leur contenu pour les regrouper sur un fichier excel manuellemnt.
J'aimerai automatisé tout ceci et donc exécuter un seul script shell qui m'envoierrait parmail le fichier csv regroupant toutes les données des logs.
Je ne sais pas si mon explication est assez claire...
Je suis très novice en shell.
0
Pierrecastor Messages postés 41491 Date d'inscription   Statut Modérateur Dernière intervention   4 149
 
Tu peux mettre un exemple de fichier log ici ?
0
lisarlt
 
week year 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


J'ai fait un simple copié collé. Ils ressemblent tous à ça à peu près.
0
Pierrecastor Messages postés 41491 Date d'inscription   Statut Modérateur Dernière intervention   4 149
 
Ok, ça doit s'importer sans soucis, y'aura par contre des redondances avec les titres de colonnes : week year max_conns


Le script de concaténation marche ? Il renvoie quoi ?
0
lisarlt
 
cat ./inputs/*.log > ./inputs/result.log;
	for i in `find ./inputs`	
		do 
			echo ${i}
			echo "$(cat ${i})"
		done;


J'ai écrit pour l'instant ce script.
L'exécution de ce script me renvoie donc dans la console tous les logs les uns à la suite des autres et crée un fichier result.log les contenant.
Et après c'est le trou. J'ai fait des recherches mais je ne sais pas comment créer le fichier csv donc je n'ai rien écrit de plus qui fonctionne.
0
Pierrecastor Messages postés 41491 Date d'inscription   Statut Modérateur Dernière intervention   4 149 > lisarlt
 
Il suffit de le renommer :

mv result.log result.csv
0
lisarlt > Pierrecastor Messages postés 41491 Date d'inscription   Statut Modérateur Dernière intervention  
 
ahhh je savais pas !! mais ça fonctionne !
Merci beaucoup, désolée pour la perte de temps...
0
Pierrecastor Messages postés 41491 Date d'inscription   Statut Modérateur Dernière intervention   4 149 > lisarlt
 
Comme je disais plus haut, c'est juste l’extension qui change.

Il devrait même y avoir moyen de supprimer les deux premières lignes de chaque fichier pour évité d'avoir "week year max_conns " en redonnant dans les colonnes, mais ça dépasse mon niveau de bash.

Et ce n'est pas du temps perdu, mais partagé. ;-)
0