Philippe Strauss a écrit :
> 

> voui mais meme les regexp etendue n'ont pas d'operateur AND, la barre verticale
> signifie un OU logique, donc cette regexp matchera (oh le bo mot) aussi pour

il me semblait aussi, c'est d'ailleurs par là que mes probs ont
commencés :)

> un fichier ne contenant qu'une des deux partie de la regexp, par exemple
> 'matrix'.
> l'utilisation du && du shell est je trouve la plus jolie des solutions,
> celle de Jean-Albert Ferrez.$

mais merci quand même à tous pour vos conseils...  je constate juste
qu'il n'y a pas de solution standard (canonique dirait mon mentor)...

si vous le permettez et si ça peut rendre service à qqun, je vous joint
ici le petit programme python que j'ai écrit... ATTENTION, c'est juste
un premier jet... faudrait voir à faire les choses un peu plus
proprement si on voulait vraiment l'utiliser...

###----------- multigrep.py -------------------
# /usr/bin/python
import fileinput, sys, string

usage = """
    Usage : python multigrep.py <#patterns>  <pattern_1> .. <pattern_n>
<files>
        <#pattern>  nombre de patterns de recherche
        <pattern_k> les différents patterns séparés par des espaces
        <files>     la liste des fichiers à examiner
    """

if len(sys.argv) < 3 :
    print usage;
    
##print sys.argv

n = int(sys.argv[1]);
searchterms, sys.argv[1]  = sys.argv[2:2+n],sys.argv[2+n:];

filelist = sys.argv[1];
##print searchterms;

try :
    for searchterm in searchterms:
        ##print filelist;
        if len(filelist) :
            ##print "search term : ",searchterm;
            sys.argv[1:] = filelist[:];
            ##print sys.argv[1];
            filelist = [];
            for line in fileinput.input():
                if (string.count(line, searchterm)) :
                    if not (fileinput.filename() in filelist) :
                        filelist = filelist + [fileinput.filename()];
                        ##print "filelist = ",filelist, "\n\n";
except IOError:
    print usage;
else :
    for file in filelist :
        print file;
###----------- multigrep.py -------------------


merci encore et bonne soirée

claude
--
http://www-internal.alphanet.ch/linux-leman/ avant de poser
une question. Ouais, pour se désabonner aussi.

Répondre à