Как найти есть ли подстрока "bar" в файле, начинающегося с foo?

Помогите составить правильное регулярное выражение. Нужно найти есть ли bar во всех файлах, в которых в начале файла есть строка foo. Имена файлов могут быть любые.

grep  -i "bar" "^foo"

Найдет bar во всех файлах с именами foo*, а как можно искать в файлах с содержимым? И можно ли как-то заставить вернуть не строку, а true или false?

foo some bar text bar

Должно вернуть true

Попробовал такую конструкцию

grep ^foo *.txt && grep bar *

Но она выводит Все имена файлов с текстом foo, а потом с bar


Ответы (1 шт):

Автор решения: Konstantin_SH

Можно воспользоваться стыкованием команд и выполнить такую:

 grep ^foo *.txt | grep bar *

То есть находим все txt файлы у которых в начале есть foo, перенаправляем вывод первой команды во вторую где находим bar.

Выводит имена нужных файлов : bar. Как превратить в true или false буду искать.

→ Ссылка