it-swarm.dev

كيفية grep مع قائمة الكلمات

لدي ملف A به 100 كلمة مفصولة بأسطر جديدة. أرغب في البحث في الملف B لمعرفة ما إذا كانت أي من الكلمات الموجودة في الملف A تحدث فيه.

جربت ما يلي ولكن لا يعمل معي:

grep -F A B
71
phoenix

تحتاج إلى استخدام الخيار -f:

$ grep -f A B

يقوم الخيار -F بالبحث في السلسلة الثابتة حيث يكون -f هو تحديد ملف لأنماط. قد تحتاج إلى كليهما إذا كان الملف يحتوي فقط على سلاسل ثابتة وليس على تعابير.

$ grep -Ff A B

قد تحتاج أيضًا إلى خيار -w لمطابقة الكلمات بأكملها فقط:

$ grep -wFf A B

اقرأ man grep للحصول على وصف لجميع الوسائط الممكنة وماذا تفعل.

100
Chris Seymour

للعثور على قائمة طويلة جدًا من الكلمات في الملفات الكبيرة ، يمكن أن يكون استخدام egrep أكثر فعالية:

remove the last \n of A
$ tr '\n' '|' < A > A_regex
$ egrep -f A_regex B
1
Alcolo47