Boucle for - parcourir 2 fichiers [Résolu]

Signaler
Messages postés
2
Date d'inscription
jeudi 26 mars 2020
Statut
Membre
Dernière intervention
26 mars 2020
-
Messages postés
2
Date d'inscription
jeudi 26 mars 2020
Statut
Membre
Dernière intervention
26 mars 2020
-
Bonjour,

Désolé de revenir sur ce sujet qui a sans doute été abordé plusieurs fois, je suis débutant et malheureusement je ne trouve pas mon bonheur sur le forum ou sur internet.

Je cherche à parcourir un 1er fichier ligne par ligne puis à comparer chacune de ses lignes avec chacune des lignes d'un 2ème fichier, si le résultat match alors je l'écris dans une log.

Mon 1er fichier contient des numéros de commandes et comporte environ 200 lignes, exemple :
55555
66666

etc

Mon 2ème fichier contient un nom de fichier associé à son numéro de commande et contient environ 3000 lignes, exemple :
test1.pdf:11111
test2.pdf:22222
test3.pdf:33333
test4.pdf:44444
test5.pdf:55555
test6.pdf:66666

etc

Le but est donc d'avoir en sortie dans ma log, les résultats matchés, avec le nom de fichier et son numéro de commande, soit :
test5.pdf:55555
test6.pdf:66666


Merci beaucoup par avance pour votre aide.

2 réponses

Messages postés
35705
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
30 octobre 2020
5 578
Salut,

Pas la peine de faire une boucle, grep fait ça très bien ;-)

Le contenu des fichiers f1 et f2 :
$ more f*
::::::::::::::
f1
::::::::::::::
55555
66666
77777
::::::::::::::
f2
::::::::::::::
test1.pdf:11111
test2.pdf:22222
test3.pdf:33333
test4.pdf:44444
test5.pdf:55555
test6.pdf:66666


La commande qui envoie le résultat dans f3 :
$ grep -f f1 f2 > f3


Le contenu de f3 :
$ cat f3
test5.pdf:55555
test6.pdf:66666

Messages postés
2
Date d'inscription
jeudi 26 mars 2020
Statut
Membre
Dernière intervention
26 mars 2020

Bonjour,

Merci pour votre retour rapide, effectivement c'est finalement très simple, je n'avais pas connaissance de l'option -f de grep, la prochaine fois, un man grep me sera utile :)