Поиск файла с использованием двух строк в одной строке из другого файла с помощью grep или другого инструмента

Я пытаюсь записывать строки по файлам. Проблема в том, что grep плохо работает со строками, которые содержат несколько строк (о которых я знаю), которые я хочу использовать по отдельности. Grep, возможно, не самое простое решение здесь, но это то, что я знаю, так что это то, что я использую. Короче, у меня есть 2 файла, которые я использую. Первый файл (file2.txt), который я ищу, настроен следующим образом:

a c  
d  
f  
g  
b h  
h  

Второй файл (file1.txt), который я использую в качестве аргумента поиска, выглядит следующим образом:

a b

Я не получаю возврата, когда я ищу с помощью grep, используя:

grep -f file1.txt file2.txt

Однако я хотел бы получить возвращение, которое приносит мне эти строки, потому что в них встречаются «a» и «b» в файле 2:

a c
b h
0
задан 27 August 2019 в 19:03

1 ответ

Вероятно, самой простой вещью сделать является преобразование file1.txt к разделенному от новой строки потоку, и передайте это grep -f через stdin:

$ tr -s '[:blank:]' '\n' < file1.txt | grep -Ff- file2.txt
a c
b h
0
ответ дан 23 October 2019 в 04:23

Другие вопросы по тегам:

Похожие вопросы: