find . -name "*.txt" | xargs grep "text"
ошибка, если в имени файла есть пробелы
Как заставить это работать с именем файла с пробелами
Это будет работать для всех имен файлов, а также будет несколько более эффективным, поскольку устраняет необходимость в конвейере:
find . -name "*.txt" -exec grep "text" {} +
попробуйте это:
find . -name "*.txt" -print0 | xargs -0 grep "text"