#1 Le 23/08/2012, à 16:21
- kboo
[résolu] grep extraction et expressions régulières
Bonjour,
je cherche à récupérer les noms de tous les fichiers n'ayant pas une clef md5 correctes:
La ligne suivante me permet de créer les hash md5 de tous les fichiers python (.py)
find ./ -name "*.py" -type f -print0 | xargs -0 md5sum >> filetmp.md5
mais quand je veux récupérer la liste avec:
md5sum -c filetmp.md5 | grep ".py: ÉCHEC$"
j'obtiens bien les ligne contenant "ÉCHEC" mais je voudrai récupérer directement la ligne sans la fin
c'est à dire j'obtiens ça:
"./nouveau dossier 2/3_/tags/ct2-201-12/transformPFile.py: OK"
et je voudrai juste avoir
"./nouveau dossier 2/3_/tags/ct2-201-12/transformPFile.py"
à la place... une sorte de
grep "(.py): OK" (je sais ça ne marche pas car je ne sais pas comment extraire juste les données qui vont bien...
je seche...
merci infiniment pour votre aide
Dernière modification par kboo (Le 24/08/2012, à 08:57)
Hors ligne
#2 Le 23/08/2012, à 16:35
- grim7reaper
Re : [résolu] grep extraction et expressions régulières
Salut,
Si ton grep supporte l’option -P (probablement le cas), alors tu peux utiliser :
grep -oP '(.*py)(?=: ÉCHEC$)'
Ici j’utilise l’option P pour être compatible PCRE, ce qui me permet d’utiliser un look-behind (le truc qui commence par ?=).
Et j’utilise l’option -o pour afficher uniquement la partie qui match mon expression régulière.
Et voilà, le tour est joué
Hors ligne
#3 Le 23/08/2012, à 18:20
- badentriya
Re : [résolu] grep extraction et expressions régulières
Avec awk on peut faire :
md5sum -c resul | awk -F ": OK" '{ $NF="" ; if ( $0 ~ /./ ) print }'
Changez l'expression si vous voulez obtenir les échecs (mais c'est une façon négative de voir les choses )
Hors ligne
#4 Le 24/08/2012, à 08:59
- kboo
Re : [résolu] grep extraction et expressions régulières
Merci infiniment grim7reaper et badentriya, ça fonctionne nickel !!
:-)
Hors ligne