Commande grep svp!!

Bonjour,

j'ai cherché une commande grep qui permet d'executer :

grep a et(b ou c ou d)

avec : a, b, c, d sont des expressions à chercher

j'ai pas réussi à le faire, j'attends donc votre aide

merci d'avance
Configuration: Windows XP
Firefox 2.0.0.13

5 réponses

  1. Modérateur
    Salut,

    Donne nous un bout de ton fichier et dit exactement ce que tu veux obtenir comme résultat.
    Pour la regex on s'en charge ;-)
    1. justement, moi je veux pas que vous me fassiez ça je le ferais moi même merci, mais ma quetstion etait si avec un grep on peut chercher une expression1 sachant (une expression2 ou une expression3 ou une expression4) c'est tout si oui donnez moi l 'algo merci .
    2. Modérateur
      @qebj'apprecie ;-)
      tout fois si tu veux qu'on t'aide on doit d'abord comprendre ce que tu as besoin
      malheuresement on n'a pas les même conditions de test

      dans le cas général
      ce que tu demandes donne
      grep -E 'regex1(regex2|regex3|regex4)' fichier.txt
      --
      106485010510997108
    3. @lami20jça s'exécute mais hélas ça ne retourne rien je vais encore bidouiller merci!!
  2. Modérateur
    Je m'excuse mais je comprends toujours pas ;-\

    Dans ton expression :

    grep "2008051610"[3-5].*"0171999900".* test.txt

    les guillemets font partie de la chaîne à rechercher ou sont là pour encadre la(es) chaîne(s) ?

    Affiche une dizaine d'exemple de ce que tu as comme numéro avec disons la moitié qui doivent correspondre avec l'expression recherchée...
    1. les guillemets c'est pour encadrer la chaine qui nous interesse...
  3. grep "2008051610"[3-5].*"0171999900".* test.txt


    cela marche et le temps d'exécution est rapide dans le cas de 0171999900, ce qui est bien
    mais réellement j'ai plusieurs num en "017..." dans un ficher et au lieu de faire une boucle et exécuter un grep un par un cela prend bcp de temps.
    donc j'ai pensé à mettre un grep sur tous les numéro par rapport a une date précise qui est "2008051610"[3-5] par exemple
    merci
    1. Modérateur
      Salut,

      Des exemples précis s'il te plaît...

      Sinon essaies ça :
      grep -E "(a)+.*([bcd])+"
      ;-))