Scripte pour comparer l'existence d'un mot

Fermé
GuillaumeNoob Messages postés 6 Date d'inscription samedi 21 juin 2008 Statut Membre Dernière intervention 22 juin 2008 - 21 juin 2008 à 20:45
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 22 juin 2008 à 17:17
Bonjour,

Voila j'ai deux "2" fichiers textes, donc principale.txt et vérification.txt

Voila mon problème :

Je voudrais en BASH que la comparasion sois faite entre les 2 fichiers et que si le fichier principale.txt renferme un mot présent dans la liste vérification.txt qu'il l'imprime dans un fichier

Exemple :

Principale.txt

allo
maison
pomme

vérification.txt

ananas
bière
allo

Donc, le mot allo devrait être inscrit dans un fichier texte...

Merci a l'avance aux spécialistes qui se donneront la peine de lire le message et d'y répondre!
Configuration: 

Le mieu serait un truc avec un renvoi a la ligne x si le mot et présent, et un renvoi a la ligne z si il n'y est pas! 

Linux Fedora
Firefox 2.0.0.14

2 réponses

eZula Messages postés 3392 Date d'inscription samedi 26 avril 2008 Statut Contributeur Dernière intervention 8 mai 2021 392
22 juin 2008 à 00:00
Salut,

essaye un truc dans ce style peut être :

for i in `cat Principale.txt` ; do if grep "$i" verification.txt ; then echo "$i" >> compare.txt ; fi ; done
0
GuillaumeNoob Messages postés 6 Date d'inscription samedi 21 juin 2008 Statut Membre Dernière intervention 22 juin 2008
22 juin 2008 à 02:02
Un gros merci cela fonctionne comme je le voulais, mais ais - je une erreur dans celle -c i ? Dernière question promis, après réponse :P

for i in `cat configuration/blackip.txt` ; do if grep -E '(:digit:{1,3}\.){3}:digit:{1,3}'' "$i" logs/clientslog.txt ; then echo "$i" >> compare.txt ; fi ; done

De cette façon cela semble pas fonctionner
0
eZula Messages postés 3392 Date d'inscription samedi 26 avril 2008 Statut Contributeur Dernière intervention 8 mai 2021 392
22 juin 2008 à 11:24
Qu'est-ce que tu cherches à matcher avec '(:digit:{1,3}\.){3}:digit:{1,3}', si tu peux donner des exemples
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
22 juin 2008 à 17:17
Attention, l'expression réelle de notre ami GuillaumeNoob est plutôt du genre :
([ [:digit:]]{1,3}\.){3}[ [:digit:]]{1,3}'
sans les espaces devant le premier crochet ouvrant de chaque expression. C'est un problème dû à la mise en page de la balise code qui interprète les expressions encadrées par des doubles crochets comme des liens interne à CCM ;-((
0