Exact grep -f de commande sous Linux
J'ai 2 fichiers txt dans Linux.
A.txt contenu (chaque ligne contient un nombre):
1
2
3
B.txt contenu (chaque ligne contient un nombre):
1
2
3
10
20
30
grep -f A.txt B.txt
résultats ci-dessous:
1
2
3
10
20
30
Est-il un moyen de grep dans une telle manière que je vais obtenir seulement la correspondance exacte, c'est à dire pas 10, 20, 30?
Merci d'avance
OriginalL'auteur John | 2013-05-23
Vous devez vous connecter pour publier un commentaire.
Exacte de l'utilisation de la correspondance
-x
commutateurEDIT: Si vous ne voulez pas grep regex des capacités et de la nécessité de traiter le modèle de recherche que les cordes puis utilisez
-F
switch:-f
optionEt d'ajouter
-F
pour désactiver les métacaractères dans l'entrée. Par exemple,3.14
serait également correspondre à3124
sans-F
akafgrep
option.Merci beaucoup, je vais l'ajouter à ma réponse.
Je pense que tu veux dire que 3.14 serait également correspondre à 3214, pas 3124.
Tout à fait soi - merci pour le remarquer.
OriginalL'auteur anubhava
Comme anubhava souligné,
grep -x
va correspondre à l'ensemble de la ligne. il y a un autre commutateur-w
pour le mot correspondant. Doncgrep -wf A.txt B.txt
montrera matches si un mot deA.txt
correspond à un mot dansB.txt
OriginalL'auteur abasu
Essayez d'ajouter le
-w
drapeau:grep -wf A.txt B.txt
Cela vous donnera le résultat exact qui est sous:
1
2
3
Grâce
OriginalL'auteur user4967165
vous pouvez essayer d'identifier le nom du fichier qui contient différents contenus
OriginalL'auteur Ranjithkumar T