Я пытаюсь записывать строки по файлам. Проблема в том, что 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
Вероятно, самой простой вещью сделать является преобразование file1.txt
к разделенному от новой строки потоку, и передайте это grep -f
через stdin:
$ tr -s '[:blank:]' '\n' < file1.txt | grep -Ff- file2.txt
a c
b h