Analyse fichier texte
Liiiili
Messages postés
3
Statut
Membre
-
solkis Messages postés 22 Statut Membre -
solkis Messages postés 22 Statut Membre -
Bonjour,
Je cherche à analyser un fichier texte à partir d'un scropt shell.
D'abord est ce que vous connaissez des cours bien faits qui peuvent m'aider?
J'aimerai lire le fichier ligne par ligne, si la fin de la ligne est A ( séparateur espace entre les mots d'une ligne, donc dernier mot sera A), je prends le premier mot de cette ligne , je le stocke ds une variable, et puis je dois lire les 3 lignes qui la suivent directement et refaire la meme chose, ie, prendre la première expression.
Le premier mot de la ligne sera une date, genre 23:20:12.060769, je dois le convertir en millisecondes et le mettre ds une variable .
Je débute en script, svp un coup de main.
Je cherche à analyser un fichier texte à partir d'un scropt shell.
D'abord est ce que vous connaissez des cours bien faits qui peuvent m'aider?
J'aimerai lire le fichier ligne par ligne, si la fin de la ligne est A ( séparateur espace entre les mots d'une ligne, donc dernier mot sera A), je prends le premier mot de cette ligne , je le stocke ds une variable, et puis je dois lire les 3 lignes qui la suivent directement et refaire la meme chose, ie, prendre la première expression.
Le premier mot de la ligne sera une date, genre 23:20:12.060769, je dois le convertir en millisecondes et le mettre ds une variable .
Je débute en script, svp un coup de main.
A voir également:
- Analyse fichier texte
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier .dat - Guide
4 réponses
Salut;
pour ce que tu ve faire tu peut essayé en ouvrant le fichier texte avec qqch comme "cat"
tu le redirige vers la commande "grep" qui va chercher dans le texte et t'afficher la ligne
avec ca déja tu as :
**ton fichier texte par exemple: (je le nome "txt")**
23:20:12.060769 B
13:00:02.123456 A
23:20:12.060769 C
***fin fichier texte***
script:
cat /chemin/vers/txt | grep "A"
==resultat ==>
il t'affiche :
13:00:02.123456 A
-----------------------------------------------------------------------------
aprés si tu ve récupéré just la date tu utilise le "cut" sur ce que te renvoi le grep
--> cat /chemin/vers/txt | grep "A" | cut -d" " -f1
ac celui là il te donnera : 13:00:02.123456
je ne suis pas sur de ems attributs pour le cut , regarde la doc ( man cut) et mm pour les autres...
c'est des commandes bash que tu pe executé directe dans le terminal ou dans un script bash
Voila jep que ca va t'aider
(si tu ve faire ptet plus précis renseingne toi sur les expressions régulières)
pour ce que tu ve faire tu peut essayé en ouvrant le fichier texte avec qqch comme "cat"
tu le redirige vers la commande "grep" qui va chercher dans le texte et t'afficher la ligne
avec ca déja tu as :
**ton fichier texte par exemple: (je le nome "txt")**
23:20:12.060769 B
13:00:02.123456 A
23:20:12.060769 C
***fin fichier texte***
script:
cat /chemin/vers/txt | grep "A"
==resultat ==>
il t'affiche :
13:00:02.123456 A
-----------------------------------------------------------------------------
aprés si tu ve récupéré just la date tu utilise le "cut" sur ce que te renvoi le grep
--> cat /chemin/vers/txt | grep "A" | cut -d" " -f1
ac celui là il te donnera : 13:00:02.123456
je ne suis pas sur de ems attributs pour le cut , regarde la doc ( man cut) et mm pour les autres...
c'est des commandes bash que tu pe executé directe dans le terminal ou dans un script bash
Voila jep que ca va t'aider
(si tu ve faire ptet plus précis renseingne toi sur les expressions régulières)
Bonjour,
J'arrive à collecter les informations que je veux dans un fichier, j'ai 4 lignes qui se répètent dans le fichier, ie
16:20:12.060769 blablabla 40
16:20:12.093199 blablabla 640
16:20:12.209003 blablabla 640
16:20:12.273179 blablabla 216
16:20:27.217444 blablabla 40
16:20:27.235410 blablabla 640
16:20:27.327552 blablabla 640
16:20:27.395484 blablabla 216
et ainsi de suite , les quatre première lignes se répètent.
Ce que je cherche à faire, c'est parcourir le fichier, prendre à chaque fois la date aprés la convertir en ms,faire quatre tableaux , ds T1 je stpcke les dates de 1ère, 5ème,9ème...lignes
dans T2, 2ème,6ème...lignes
dans T3,3ème, 7ème .. lignes
dans T4, 4ème, 8ème... lignes
est ce que quelq'un a une idée svp??
J'arrive à collecter les informations que je veux dans un fichier, j'ai 4 lignes qui se répètent dans le fichier, ie
16:20:12.060769 blablabla 40
16:20:12.093199 blablabla 640
16:20:12.209003 blablabla 640
16:20:12.273179 blablabla 216
16:20:27.217444 blablabla 40
16:20:27.235410 blablabla 640
16:20:27.327552 blablabla 640
16:20:27.395484 blablabla 216
et ainsi de suite , les quatre première lignes se répètent.
Ce que je cherche à faire, c'est parcourir le fichier, prendre à chaque fois la date aprés la convertir en ms,faire quatre tableaux , ds T1 je stpcke les dates de 1ère, 5ème,9ème...lignes
dans T2, 2ème,6ème...lignes
dans T3,3ème, 7ème .. lignes
dans T4, 4ème, 8ème... lignes
est ce que quelq'un a une idée svp??
Tu pe numéroté els lignes, (je me rapelle plus la commande mais je sais qu'elel existe, elle rajoute un numéro , un espace et le reste de la ligne)
ansi tu refait un "grep" pour selectionné les lignes que tu veu, pui tu utilise "cut" pour séparé la date et la mettre dans ton tableau.
cat /ton/vichier/ac/les/infos | grep "^1 " "^5 " | cut -d" " -f2 >> tableau
=> ca li ton fichier, le flu est redirigé vers "grep" qui sélectionne les lignes commencant par "1 ", "5 ", le résultat est redirigé vers le cut, qui prend comem délimiteur de colone " " (un espace), et il isole la 2eme colone( la date), enfin le tout est écri dans mon fichier "tableau"
Pour tes tableau tu veu qu'ils ressemblent a quoi?
jesp que ca peut t'aidé (nésite po as regardé la doc des commandes avec "lacommande--help" , ou "man lacommande")
ansi tu refait un "grep" pour selectionné les lignes que tu veu, pui tu utilise "cut" pour séparé la date et la mettre dans ton tableau.
cat /ton/vichier/ac/les/infos | grep "^1 " "^5 " | cut -d" " -f2 >> tableau
=> ca li ton fichier, le flu est redirigé vers "grep" qui sélectionne les lignes commencant par "1 ", "5 ", le résultat est redirigé vers le cut, qui prend comem délimiteur de colone " " (un espace), et il isole la 2eme colone( la date), enfin le tout est écri dans mon fichier "tableau"
Pour tes tableau tu veu qu'ils ressemblent a quoi?
jesp que ca peut t'aidé (nésite po as regardé la doc des commandes avec "lacommande--help" , ou "man lacommande")
a oui c'est vrai, la convertion...
si c les 16:20:12.060769 tt entier, perso je réutiliserai cut pour selectionné ce qu'il y a entre les ":" que je mettrai en variable puis je ferai les opé ac les variable pour arrivé a la fin au ms...
exemple
heures=cut -d":" -f1
min=cut -d":" -f2
...
pui aprés
ms=heure*3600*1000+min*60*1000.......
mias javou je voi pas l'utilité de tt convertire en ms *-)
si c les 16:20:12.060769 tt entier, perso je réutiliserai cut pour selectionné ce qu'il y a entre les ":" que je mettrai en variable puis je ferai les opé ac les variable pour arrivé a la fin au ms...
exemple
heures=cut -d":" -f1
min=cut -d":" -f2
...
pui aprés
ms=heure*3600*1000+min*60*1000.......
mias javou je voi pas l'utilité de tt convertire en ms *-)