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
Version imprimable
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 :roll: ?
Ca semble assez facile pour peu que ton fichier soit bien explicite (d'ailleurs, peut-on en voir un morceau d'exemple ?).
@++
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
@++
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:
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;
@++
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
voici mon script !!
mais je ne comprends pas la fonction regexps ?? c'est quoi ??
Code:
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 !!! :lol:
:lol: :lol: :cry: :cry:
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
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:
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 reparle ;) sur 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:
1
2
3
4 while (<<FIC_LOG>) { $erreur.= $_ if /error/; }