Решение с использованием опции grep
-f
с помощью sed
(, предложенное cas):
$ grep -f <(sed 's/^/^/' file2) file1
c cat
e eagle
f fire
Команда sed 's/^/^/' file2
добавляет знак вставки ^
в начало каждой строки в file2
. Мы используем этот вывод в качестве входного файла шаблона для опции grep
-f
, используя подстановку процесса (<(…)
).
Команда grep
печатает те строки в file1
, которые соответствуют шаблонам подстановки команд. Нам нужен символ ^
в наших шаблонах, чтобы соответствовать тем строкам, которые начинаются с данным символом.