Представьте себе, что у вас есть эти два файла:
Первый:
# foo
http://some.url/
# bar
http://foo.url/
# bar
http://and.one.more/url
Второй:
foo
doo
Теперь я хочу напечатать из первого файла эти строки которые начинаются с #
и содержат слова из Второго файла - и не только эти строки, но и те URL, которые следуют за совпавшими строками.
Сначала мне показалось, что я могу использовать grep
:
grep -f Second -A 1 First
Но, конечно, это была ошибка:
# foo
http://some.url/
--
http://foo.url/
# bar
Итак, мой вопрос: как я могу ограничить фильтрацию только теми строками, которые начинаются с #
? И после нахождения таких строк распечатайте их, а также следующую строку после них. Было бы здорово, если бы это можно было сделать с помощью некоторых стандартных инструментов, таких как grep
, sed
или awk
.
. Желаемым результатом для этого самого примера будет:
# foo
http://some.url/
РЕДАКТИРОВАТЬ: Извините, что беспокою вас всех, в моем конкретном случае я решил просто временно объединить строки, затем к grep -f Second First
, а затем разделить получившиеся строки обратно на печать.