2

Используя "grep -of file1.txt file2.txt" (содержимое файла ниже), я получаю вывод:

and
if
pineapple

Почему «dif» и «за» отсутствуют? Нужно ли использовать какие-либо другие переключатели?

file1.txt

and
dif
for
if
apple
pineapple

file2.txt

andiforpineapple

2 ответа2

3

Это вот так:

andiforpineapple
  ^found and
   ^continuing search from i
    ^found if
     ^continuing search from o
       ^found pineapple
1

Если вы хотите повторно найти входной файл для каждого указанного шаблона:

$ cat patterns.txt 
and
dif
for
if
apple
pineapple
$ cat source.txt 
andiforpineapple
$ while read; do grep -o -e"$REPLY" source.txt; done <patterns.txt
and
dif
for
if
apple
pineapple

Однако это будет иметь другой порядок вывода строк, чем вы, очевидно, хотите, если исходный файл имеет более одной строки. Поскольку вы не сказали, для чего вы это используете, я не знаю, сработает ли это для вашей реальной проблемы.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .