Подтвердить что ты не робот

Как grep со списком слов

У меня есть файл A, содержащий 100 слов, разделенных новыми строками. Я хотел бы найти файл B, чтобы увидеть, есть ли в нем ЛЮБОЙ из слов в файле A.

Я пробовал следующее, но не работал со мной:

grep -F A B
4b9b3361

Ответ 1

Вам нужно использовать опцию -f:

$ grep -f A B

Параметр -f выполняет фиксированный поиск строк, где -f предназначен для указания файла шаблонов. Вам может понадобиться и то, и другое, если файл содержит только фиксированные строки, а не регулярные выражения.

$ grep -Ff A B

Вам также может понадобиться опция -w для соответствия только целым словам:

$ grep -wFf A B

Прочитайте man grep для описания всех возможных аргументов и того, что они делают.

Ответ 2

Чтобы найти очень длинный список слов в больших файлах, более эффективно использовать egrep:

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