Grep operateur ET

matmat -  
lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   -
Bonjour,
bon c'est tout bete comme question , avec grep, en expression regulieres comment je peux trouver les fichiers qui contiennent le mot1 ET le mot2, y a des tonnes de doccs sur le ou logique mais j ai pas trouve pour le ET tout betement, , dans n importe quelle sens je veux juste que les deux occurences soient presentes dans le fichier

Merci :D

2 réponses

  1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    Salut,

    Voir du côté de "fgrep" ou "grep -F" :

    $ cat plop
    blablabla MOTIF1 blablabla MOTIF2 blablabla
    MOTIF3 blablabla
    blablabla MOTIF4 blablabla
    bla MOTIF5 blablabla MOTIF6 blablabla
    blabla MOTIF7 blabla
    
    $ fgrep  'MOTIF1
    MOTIF4' plop
    blablabla MOTIF1 blablabla MOTIF2 blablabla
    blablabla MOTIF4 blablabla
    
    $ fgrep  'MOTIF7
    MOTIF1' plop
    blablabla MOTIF1 blablabla MOTIF2 blablabla
    blabla MOTIF7 blabla
    $

    ;-))
    0
  2. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    mais j ai pas trouve pour le ET tout betement, ,
    A ma connaissance il n'y a pas d'opérateur AND pour les regex.
    En revanche on peut toujours utiliser les opérateurs des applications qui utilisent les regex

    Par exemple la solution donné par zipe31 n'est valable que pour grep -F ou fgrep mais pas pour d'autres applications qui utilisent les regex.

    Voici une autre possibilité avec grep sans -F
    L'option -H permet de voir quel fichier contient mot1 et mot2
    lami20j@debian-acer:~$ cat mot1.txt 
    mot1 bla bla
    bla bla
    titi toto
    mot1
    tata tutu
    lami20j@debian-acer:~$ cat mot2.txt 
    mot2 ha ha
    titi toto
    mot2
    tata tutu
    lami20j@debian-acer:~$ cat mot1mot2.txt 
    mot1 bla bla
    bla bla
    mot2 ha ha
    titi toto
    mot2 mot1
    tata tutu
    lami20j@debian-acer:~$ grep -H mot1 mot1mot2.txt | grep mot2
    mot1mot2.txt:mot1 bla bla
    mot1mot2.txt:mot2 mot1
    lami20j@debian-acer:~$ 


    0