Вы можете использовать простое регулярное выражение, которое соответствует;
==>(.*)<==
foo
)tail -n +1 * | grep -E '==>(.*)<==|foo'
Другой вариант, основанный на моем первоначальном ответе, пропустив -exec
через grep
следующим образом:
find . -type f -print -exec grep 'foo' {} \;
Пример использования обоих методов в 3 файлах ({a,b,c}.txt
), каждый из которых содержит a
, b
и c
.
bash-3.2$ tail -n +1 *
==> a.txt <==
a
b
c
==> b.txt <==
a
b
c
==> c.txt <==
a
b
c
bash-3.2$ tail -n +1 * | grep -E '==>(.*)<==|c'
==> a.txt <==
c
==> b.txt <==
c
==> c.txt <==
c
bash-3.2$ find . -type f -print -exec grep 'c' {} \;
./c.txt
c
./b.txt
c
./a.txt
c