bonjour,
Je voudrai savoir si mon fichier toto.txt contient des erreurs et ressortir la ligne dans un fichier erreur.log.
En fait , je veux grepper, les mots erreur, error, bad......
comment puis je faire ??
merci pour vos solutions
bonjour,
Je voudrai savoir si mon fichier toto.txt contient des erreurs et ressortir la ligne dans un fichier erreur.log.
En fait , je veux grepper, les mots erreur, error, bad......
comment puis je faire ??
merci pour vos solutions
A grands coup de regexps?
Ca semble assez facile pour peu que ton fichier soit bien explicite (d'ailleurs, peut-on en voir un morceau d'exemple ?).
@++
GLDavid
Consultez la FAQ Perl ainsi que mes cours de Perl.
N'oubliez pas les balises code :tagcode: ni le tag :resolu:
Je ne répond à aucune question technique par MP.
on peut trouver où des exemples de regexps ??
exemple de ce que l'on peut trouver dans le fichier toto.txt
[Native Error code: 3621]
[Message Class: 10]
[Message State: 0]
Notre FAQ, pardi ! Djibril nous a écrit de superbes articles sur le sujet : http://perl.developpez.com/faq/?page=sectionB7
@++
GLDavid
Consultez la FAQ Perl ainsi que mes cours de Perl.
N'oubliez pas les balises code :tagcode: ni le tag :resolu:
Je ne répond à aucune question technique par MP.
je dois vraiment etre pas trés bon, parce que je ne retrouve pas d'exemple ou de script sur lequel , je pourrai m'inspirer.
si quelqu'un veut bien m'aider !!!
merci d'avance
Hello
Voici un code simple : il se contente de t'afficher qu'il a trouvé le motif Native Error:
Attention, code non testé. Mais cela peut t'inspirer.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 #!/usr/bin/perl -w use strict; open FILE,"< toto.txt" or die "$!\n"; while(<FILE>){ if(/Native\sError/){ print "Native error found"; } } close FILE;
@++
GLDavid
Consultez la FAQ Perl ainsi que mes cours de Perl.
N'oubliez pas les balises code :tagcode: ni le tag :resolu:
Je ne répond à aucune question technique par MP.
essaye déjà d'ecrire toi même le script et on va t'aider si possible.
piste :
-ouverture de fichier en lecture
-ouverture de fichier en ecriture
- traitement des lignes (regex)
- print dans error.log
- fermeture fichiers
et c'est fini
- Les meilleurs cours et tutoriels Perl et Perl 6 pour vous former ;
- FAQ Perl, Perl 6 et Perl/Tk d'entraide ;
- Les news sur la rubrique Perl ;
- S'abonner au compte Twitter de la rubrique Perl ;
- Mes tutoriels developpez.com.
Pas de questions technique par messagerie privée (lisez les règles du forum Perl) et pour les nouveaux !
voici mon script !!
mais je ne comprends pas la fonction regexps ?? c'est quoi ??
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 my $FicLog="L:/Solendi/EXP/GRC/LOG/toto.txt"; my $Erreur = ""; open (FIC_LOG, "<$FicLog") ; while ($ligne = <FIC_LOG>) { $Erreur = grep {\error\} $ligne; } close (FIC_LOG);
Je t'ai grillé Djibril !!!![]()
GLDavid
Consultez la FAQ Perl ainsi que mes cours de Perl.
N'oubliez pas les balises code :tagcode: ni le tag :resolu:
Je ne répond à aucune question technique par MP.
- Les meilleurs cours et tutoriels Perl et Perl 6 pour vous former ;
- FAQ Perl, Perl 6 et Perl/Tk d'entraide ;
- Les news sur la rubrique Perl ;
- S'abonner au compte Twitter de la rubrique Perl ;
- Mes tutoriels developpez.com.
Pas de questions technique par messagerie privée (lisez les règles du forum Perl) et pour les nouveaux !
En quoi tu m'as grillé ?? je vois pas le rapport avec ma question !!
enfin pour info, ça ne fonctionne toujours pas !!!
GLdavid t'as donné la reponse. Adapte le à tes besoins
- Les meilleurs cours et tutoriels Perl et Perl 6 pour vous former ;
- FAQ Perl, Perl 6 et Perl/Tk d'entraide ;
- Les news sur la rubrique Perl ;
- S'abonner au compte Twitter de la rubrique Perl ;
- Mes tutoriels developpez.com.
Pas de questions technique par messagerie privée (lisez les règles du forum Perl) et pour les nouveaux !
et à la limite, s'il n'y a pas de traitement spécifique derrière, pourquoi ne pas FAIRE un grep ?
ou qqch comme ca
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2#grep err(eu|o)r|bad toto.txt > erreur.log
@+
Mr6
c'est du perl, pas du ksh, je ne suis pas sur que tu puisses rediriger des grep dans un fichier par le >>.
bah tu testes et on en reparlesur mon aix ca marche pour sûr 8)
par contre, je mets la regex entre double quotes contrairement à mon exemple (qui n'était que de principe, et non testé). celà dit, si tu as d'autres traitements à faire sur tes fichiers derrière le grep en lui-même ne t'intéressera pas.
tu peux utiliser ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 while (<<FIC_LOG>) { $erreur.= $_ if /error/; }
Partager