Bonjour,
Dans un shell, je contrôle s'il y a des lignes en erreur dans un fichier de log.
Seulement, après changement de version du logiciel qui crée les fichiers de logs, j'ai identifié un morceau du code qui ne se comporte plus comme il devrait.
grep -e 'PASTRO' -e '^\*\*\*' $HOME/log/$LOG.log > $HOME/log/$LOG.grep
Au départ, le fichier contenait des lignes d'erreur du genre :
1 2
|
***Erreur dans le fichier ... |
Et des lignes de mise en forme du genre :
1 2 3 4
|
***********
* Etape 1 *
*********** |
Seulement, maintenant les lignes de mise en forme n'ont plus les espaces en début de ligne.
1 2 3 4
|
***********
* Etape 1 *
*********** |
Du coup l'expression régulière '^\*\*\*' est vraie pour les lignes "**********".
Comment modifier cette expression pour que le grep ne retourne que les lignes d'erreur.
J'ai identifié deux règles qui répondent au filtre :
- Commence par 3 étoile, et ne termine pas par une étoile
- Contient au maximum 3 étoiles en début de ligne
Mais je n'arrive pas à faire la modification...
Et le man n'aborde même pas l'écriture d'expressions régulières...
Partager