Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications
Applications Questions sur l'utilisation d'applications, du shell, et des interfaces graphiques (KDE, Gnome, XFCE... )
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 11/03/2010, 16h14   #1
Invité de passage
 
Inscription : avril 2009
Messages : 22
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 22
Points : 0
Points : 0
Par défaut besoin d'aide pour un script shell extrayant les données d'un fichier texte ou un fichier log

Bon après midi tous le monde
je vuos adresse ce message car je suis maintenant bloqué depuis 3 semaines dans une application qui me géne beaucoup
en effet je suis débutant en shell , et il m'est demandé dans le cadre de mon projet de réaliser un script qui lit les données a partir d'un fichier .log
ces données sont sous la formes suivantes :
15/01/10 11:41:38,IDENT,OK,0,bioa,G999975,0,0,0.1,460,0,0,0,0,0

15/01/10 11:47:04,IDENT,OK,0,bioa,G545669,0,0,0.1,296,0,0,0,0,0

15/01/10 11:47:18,IDENT,OK,0,bioa,G545477,0,0,0.2,195,0,0,0,0,0

15/01/10 11:47:20,IDENT,OK,0,bioa,G545744,0,0,0.1,339,0,0,0,0,0

15/01/10 11:49:12,IDENT,OK,0,bioa,G545889,0,0,0.2,406,0,0,0,0,0

15/01/10 11:54:29,IDENT,OK,0,bioa,G999975,0,0,0.1,460,0,0,0,0,0

15/01/10 11:56:59,IDENT,OK,0,bioa,G999975,0,0,0.2,460,0,0,0,0,0

15/01/10 11:58:06,IDENT,OK,0,bioa,G180124,0,0,0.1,33,0,0,0,0,0

15/01/10 11:58:46,IDENT,OK,0,bioa,G999975,0,0,0.1,460,0,0,0,0,0

15/01/10 12:01:54,IDENT,OK,0,bioa,G545564,0,0,0.2,229,0,0,0,0,0

15/01/10 12:02:02,IDENT,OK,0,bioa,G545906,0,0,0.3,408,0,0,0,0,0

15/01/10 12:03:48,IDENT,OK,0,bioa,G545526,0,0,0.1,218,0,0,0,0,0

15/01/10 12:04:54,IDENT,OK,0,bioa,G545589,0,0,0.2,246,0,0,0,0,0

15/01/10 12:05:00,IDENT,OK,0,bioa,G180213,0,0,0.3,488,0,0,0,0,0

15/01/10 12:09:15,IDENT,OK,0,bioa,G545674,0,0,0.2,301,0,0,0,0,0

16/01/10 09:59:42,AUTH_CTL_WODB_ID_ONLY_TERMINAL ,OK,V7,0,2,1,0,0,3,10

16/01/10 10:30:13,AUTH_CTL_WODB_ID_ONLY_TERMINAL ,OK,V7,0,2,1,0,0,3,10

16/01/10 10:42:10,IDENT,OK,0,bioa,G999975,0,0,0.1,460,0,0,0,0,0

16/01/10 11:00:48,IDENT,OK,0,bioa,G544100,0,0,0.1,150,0,0,0,0,0

16/01/10 19:12:14,IDENT,OK,0,bioa,G999972,0,0,0.1,458,0,0,0,0,0

17/01/10 12:42:53,IDENT,OK,0,bioa,G999972,0,0,0.1,458,0,0,0,0,0

17/01/10 17:11:16,IDENT,OK,0,bioa,G999972,0,0,0.1,458,0,0,0,0,0

18/01/10 05:32:48,IDENT,OK,0,bioa,G999998,0,0,0.1,480,0,0,0,0,0

18/01/10 06:14:21,IDENT,OK,0,bioa,G999998,0,0,0.1,480,0,0,0,0,0

18/01/10 06:39:48,IDENT,OK,0,bioa,sansN1,0,0,0.1,486,0,0,0,0,0

18/01/10 06:47:00,IDENT,OK,0,bioa,sansN1,0,0,0.1,486,0,0,0,0,0

18/01/10 06:49:15,IDENT,OK,0,bioa,G999968,0,0,0.5,455,0,0,0,0,0

18/01/10 07:36:02,IDENT,OK,0,bioa,G545684,0,0,0.1,310,0,0,0,0,0

18/01/10 07:42:36,IDENT,OK,0,bioa,G545604,0,0,0.1,252,0,0,0,0,0

18/01/10 07:52:01,IDENT,OK,0,bioa,G545550,0,0,0.2,223,0,0,0,0,0

18/01/10 07:52:48,IDENT,OK,0,bioa,G545685,0,0,0.1,311,0,0,0,0,0

18/01/10 08:00:23,AUTH_CTL_WODB_ID_ONLY_TERMINAL
18/01/10 08:00:40,IDENT,OK,0,bioa,G999975,0,0,0.1,460,0,0,0,0,0

18/01/10 08:01:22,IDENT,OK,0,bioa,g545588,0,0,0.1,245,0,0,0,0,0

18/01/10 08:13:36,IDENT,OK,0,bioa,G545577,0,0,0.1,238,0,0,0,0,0

18/01/10 08:16:45,IDENT,OK,0,bioa,G545423,0,0,0.1,174,0,0,0,0,0

18/01/10 08:21:31,IDENT,OK,0,bioa,G545724,0,0,0.1,324,0,0,0,0,0

18/01/10 08:21:55,AUTH_CTL_WODB_ID_ONLY_TERMINAL ,OK,G360938,0,2,1,0,0,3,10

18/01/10 08:24:27,IDENT,OK,0,bioa,G545674,0,0,0.2,301,0,0,0,0,0

18/01/10 08:24:36,AUTH_CTL_WODB_ID_ONLY_TERMINAL ,OK,

avec le premier champs est la date de la forme jj/mm/aa
le fichier contient au moins un miller de ligne de cette forme , ce qui m'est demandé et de
-lire le fichier
-extraire dans une première phase les lignes qui repérensente la meme data
-les recopier dans un autre fichier texte

s'il vous pait j'ai besoin de votre aide dans mon sujet car j'en trouve plus le sulotion face à cette solution qui me bloque
je vous ai envoyé un fichier joint pour vous expliquez la formes des lignes dans le fichier
Fichiers attachés
Type de fichier : txt fichier.txt (2,5 Ko, 4 affichages)
haithem20080 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2010, 17h06   #2
Expert Confirmé
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 1 897
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 1 897
Points : 3 677
Points : 3 677
mais...tu as peut-être déjà un début de script, que nous pourrions t'aider à faire fonctionner, pour faire ce qui t'est demandé
...
?
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2010, 17h21   #3
Invité de passage
 
Inscription : avril 2009
Messages : 22
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 22
Points : 0
Points : 0
malheureusement j'ai formaté recemment le pc et j'ai perdu meme les scripts de test
mais pour ne pas vous embeter dans l'écriture du script pouvez vous m'aider par exepmle a me donner :
dans un permier temps un commade permettant de trouver une chaine de caractére dans un fichiet texte ?
on procéde pas à pas
haithem20080 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2010, 08h33   #4
Membre Expert
 
Homme
budget et contrôle de gestion
Inscription : décembre 2006
Messages : 865
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 44
Localisation : France

Informations professionnelles :
Activité : budget et contrôle de gestion
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : décembre 2006
Messages : 865
Points : 1 320
Points : 1 320
Salut,

La commande sed permet d'extraire des lignes selon un motif (et même de les modifier).
La commande grep permet elle aussi d'extraire des lignes selon un motif.

Code exemple avec grep :
grep "IDENT" <mon_fichier>
ressortira toutes les lignes contenant "IDENT".
__________________
Winnt

C'est en Linuxant qu'on devient .... geek

Intel Core i5 750 / 8 Go ram / Hdd 2 To / NVIDIA GeForce GTS 250 1Go sous Gentoo.
Dual core E6300 / 2Go ram / Hdd 1 To / Ati 9800XT sous Debian Testing.
Atom N330 / 4Go ram / Hdd 5To / intel GMA 950 sous Debian Testing
Winnt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2010, 21h45   #5
Invité de passage
 
Inscription : avril 2009
Messages : 22
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 22
Points : 0
Points : 0
Merci monsieur pour votre aide en effet ça bien marché concernant la recherche
reste a voir comment faire extraire le résultat de recherche et l'écrire dans un autre fichier
y a pas une fonction ou une methode à faire
haithem20080 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2010, 08h32   #6
Membre Expert
 
Homme
budget et contrôle de gestion
Inscription : décembre 2006
Messages : 865
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 44
Localisation : France

Informations professionnelles :
Activité : budget et contrôle de gestion
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : décembre 2006
Messages : 865
Points : 1 320
Points : 1 320
Salut,

Si on reprend le code de base précédent :
Code :
grep "IDENT" <mon_fichier> > <mon_fichier_bis>
enverra toutes les lignes avec IDENT dans <mon_fichier_bis>.
__________________
Winnt

C'est en Linuxant qu'on devient .... geek

Intel Core i5 750 / 8 Go ram / Hdd 2 To / NVIDIA GeForce GTS 250 1Go sous Gentoo.
Dual core E6300 / 2Go ram / Hdd 1 To / Ati 9800XT sous Debian Testing.
Atom N330 / 4Go ram / Hdd 5To / intel GMA 950 sous Debian Testing
Winnt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2010, 13h24   #7
Membre chevronné
 
Inscription : septembre 2007
Messages : 685
Détails du profil
Informations personnelles :
Âge : 48
Localisation : Suisse

Informations forums :
Inscription : septembre 2007
Messages : 685
Points : 723
Points : 723
Bonjour haithem20080,

Tu es nouveau sur ce site et je te fais quelques remarques:
  • Les questions doivent être très précises
  • Les exemples très clairs... et courts!
Par exemple:
Je dois extraire du fichier file_in toutes les lignes qui sont en double. Les données sont en format texte:
Code :
1
2
3
15/01/10 11:41:38,IDENT,OK,0,bioa,G999975,0,0,0.1,460,0,0,0,0,0
15/01/10 11:47:04,IDENT,OK,0,bioa,G545669,0,0,0.1,296,0,0,0,0,0
15/01/10 11:47:18,IDENT,OK,0,bioa,G545477,0,0,0.2,195,0,0,0,0,0
Le fichier file_in ne doit pas changer, le fichier destination file_out doit contenir la ligne entière puis le numéro de ligne où elle apparait:
Code :
1
2
3
15/01/10 12:09:15,IDENT,OK,0,bioa,G545674,0,0,0.2,301,0,0,0,0,0
14
16
À cela, je donnerais le code:
Code :
sort fichier_in | awk '{if ($0 == prev) {print $0; system("grep -n \"" $0 "\" fichier_in | cut -d : -f 1")} prev=$0}' > fichier_out
Mais je suis sûr que ce n'est pas exactement ce que tu veux. Alors pose ton problème précisemment, sinon tu n'auras que des réponses vagues...
__________________
Un problème bien posé est déjà résolu (H. Bergson).
jmelyn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2010, 14h10   #8
Invité de passage
 
Inscription : avril 2009
Messages : 22
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 22
Points : 0
Points : 0
en fait je vous remercie tous pour votre aide
en effet j'ai le fichier .log qui contient la liste des événement faits par jour
de ce fait la première tache était de chercher les évènement par date
donc j'ai affecté la date que je voulais à une variable comme indique la commande si desosus
echo donner la jour vous voulez récuperez
read var
par la suité j'ai fait une recherche dans le fichier et j'ai redirigé le résultat vers un fichier de sortie qui s'appelle a.log comme l'indique la commande suivante
grep -i $var TourniquetE1.log> /home/sst/Bureau/a.log

et j'ai obtenu ce que je voulais
merci por tous le monde
haithem20080 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 06h15.


 
 
 
 
Partenaires

Hébergement Web