Forum Programmation.shell Recherche de motifs via un fichier

Posté par  .
Étiquettes : aucune
0
8
fév.
2008
Bonjour,

Je cherche à trouver les motifs du fichier1 (1 motif par ligne) dans un second fichier. Ensuite je veux afficher les lignes du fichier2 comportant les motifs du fichier1.
Je recherche une comande unix que je pourrais executer via JAVA.

Avec les grep, awk je n'arrive pas à prendre les motifs du fichier1 pour regarder s'il existe dans le fichier2, étant donné que le fichier 2 ne comporte pas que les motifs.

[]$ more file1
toto
fifi
sisi
nono

]$ more file2
totosdsdssd sfdsdfsd toto
sdfsdfs sdfsdfsdf
sisi qsfsdfsdf
dfsdfs nono qdqsd
qsdfqsdftoto toto qsqsf

RESULTAT espéré :
totosdsdssd sfdsdfsd toto
qsdfqsdftoto toto qsqsf
sisi qsfsdfsdf
dfsdfs nono qdqsd



Merci pour votre aide.
  • # script?

    Posté par  (site web personnel) . Évalué à 1.

    Une commande unique ou un script complet irait? Pour un script :

    xarli@tiki:/tmp$ cat test.sh
    exec < file1
    while read ligne
    do
    grep $ligne file2
    done
    xarli@tiki:/tmp$ sh test.sh
    dsdssd sfdsdfsd toto
    qsdfqsdftoto toto qsqsf
    sisi qsfsdfsdf
    dfsdfs nono qdqsd
    xarli@tiki:/tmp$
    • [^] # Re: script?

      Posté par  . Évalué à 1.

      Il me faudrait une commande unique
  • # grep --help

    Posté par  (site web personnel) . Évalué à 1.

    donne l'option -f, --file=FILE , et donc : grep -f file1 file2 devrait convenir.
    • [^] # Re: grep --help

      Posté par  . Évalué à 1.

      ca ne marche pas ca m'affiche l'intégralité du fichier2.

      Pourtant ca à l'air tout bete à faire. Mais je bloque complet
      • [^] # Re: grep --help

        Posté par  . Évalué à 0.

        en bash c'était :
        cat file1 | while read ligne; do grep $ligne file2 ;done
      • [^] # Commentaire supprimé

        Posté par  . Évalué à 2.

        Ce commentaire a été supprimé par l’équipe de modération.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.