попробовать:
find . -name '*.txt' | xargs egrep mystring
В вашей версии есть две проблемы:
Во-первых, , *.txt
будет сначала развернут оболочкой, предоставляя вам список файлов в текущем каталоге, заканчивающийся .txt
, например, если у вас есть следующее:
[dsm@localhost:~]$ ls *.txt
test.txt
[dsm@localhost:~]$
Ваша команда find
превратится в find . -name test.txt
. Просто попробуйте следующее для иллюстрации:
[dsm@localhost:~]$ echo find . -name *.txt
find . -name test.txt
[dsm@localhost:~]$
Во-вторых , egrep
не принимает имена файлов из STDIN
. Чтобы преобразовать их в аргументы, вам нужно использовать xargs