Grep et Python

J'ai besoin d'un moyen de rechercher un fichier à l'aide de grep via une expression régulière à partir de la ligne de commande Unix. Par exemple quand je tape dans la ligne de commande:

python pythonfile.py 'RE' 'file-to-be-searched'

J'ai besoin de l'expression régulière 'RE' à rechercher dans le fichier et imprimer les lignes correspondants.

Voici le code que j'ai:

import re
import sys

search_term = sys.argv[1]
f = sys.argv[2]

for line in open(f, 'r'):
    if re.search(search_term, line):
        print line,
        if line == None:
            print 'no matches found'

Mais quand je rentre un mot qui n'est pas présent, no matches found ne pas imprimer

  • Si vous voulez vraiment pour python-style expressions régulières dans grep, le --perl-regex option à la commande grep est vraiment proche. Il vous donne perl-style de support des expressions régulières. (Aussi, mon préféré sous-utilisé en option pour la commande grep est --color=toujours )
InformationsquelleAutor David | 2009-12-17