Menu

Export de donnees sous bash dans un fichier csv

- - Dernière réponse :  Utilisateur anonyme - 11 juil. 2018 à 19:51
Bonjour,

Je travaille actuellement sur un pc centos7 je genere des rapports avec des scripts en bash.
J'ai donc un fichier texte "rapport.out" et j'aurai besoin de recuperer certaines de ces donnees en les exportant dans un fichier excel/CSV.
Je ne sais pas du tout comment m'y prendre je debute en bash.

Toutes pistes de depart sont les bienvenues !
Je ne trouve pas de methodes sur internet...

Merci !

Afficher la suite 

Votre réponse

3 réponses

Messages postés
23727
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
18 décembre 2018
0
Merci
Bonjour,

Pour que quelqu'un qui connait le scripting sous linux puisse te donner des pistes, il faudrait que tu détailles ta question, pour le moins que tu décrives le contenu de ton fichier en entrée et le format du fichier voulu au final. Tu peux aussi donner un exemple du contenu du fichier.

Cdlt
Commenter la réponse de jee pee
0
Merci
Ok le fichier d'entree est un fichier texte avec des donnees de type :

Duree totale du test : hh:mm:ss
Nombre d'iteration : x
Tests reussis : y
Tests rates : x - y
ratio : (y/x)*100

Ensuite il y a differents type d'erreurs possibles identifies dans le fichier texte par exemple :
erreur 1 : 12
erreur 2 : 8
erreur 3 : 0

Je souhaite donc a partir de ces donnees creer un fichier csv du type :

Duree test, Nombre iteration, passed, failed, ratio, erreur 1, erreur 2, erreur 3
hh:mm:ss, x, y, x-y, (y/x)*100, 12, 8, 0,


Je ne sais pas si il vaut mieux prendre en fichier d'entree le fichier texte ou le script generant le fichier texte.

J'ai pense a utiliser les fonctions de 'grep' pour recuperer chaque donnee souhaite mais je crains que ca soit un peu lourd.


Merci !
Utilisateur anonyme -
salut,

c'est tout ? il n'y a que ça dans le fichier ?
alors ce n'est pas compliqué : tu concatènes dans une variable tout ce qui est après les deux points, et quand le fichier est fini d'être lu ligne par ligne, hop! tu affiches le contenu de la variable.

mais on ne va pas le faire à ta place.
Non c'est un fichier assez important avec les logs de chaque iteration du test, mais en ecrivant le script j'ai fait apparaitre au debut du rapport un resume avec ces donnees.
Avec une commande "head -n20 report.out" j'affiche que les donnees que je souhaite exporter.

Pour l'instant j'ai une dizaine de rapports et je souhaite faire un excel/CSV avec les donnees de tous.
Utilisateur anonyme -
sans structure de données stable fournie, pas de réponse réaliste possible.
Commenter la réponse de Hercule55
Messages postés
23727
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
18 décembre 2018
0
Merci
Je vais rediriger la discussion vers le forum linux qui semble plus adapté.

Si le txt est généré par un script, ce même script pourrait effectivement à la place constituer le csv.

le grep/sed risque d'être compliqué pour rassembler des lignes. Il faudrait plutôt regarder du coté du awk. Je ne pratique pas assez pour t'aider sur ces commandes, je vais laisser de plus qualifiés poursuivre ;-)
Commenter la réponse de jee pee