Я искал везде, но не нашел, как вернуть содержимое файла, которое соответствует заданным словам или регулярному выражению.
cat /tmp/*.txt | grep "strings"
Вы только что значит grep
файл (ы) вместо () cat
без толку ИНГ его / их к grep
grep strings /tmp/*.txt
Что делает cat
, так это объединяет все файлы *.txt
в один большой "файл". Если cat
несколько файлов grep
поэтому будет видеть только один вход без реального имени, это все ваши файлы в сочетании, подаваемые через трубу. Это не даст вам имена файлов, так как вы в основном сделали все одним большим файлом.
Если вы хотите, чтобы grep
только возвращал совпадающие файлы, используйте параметр -l
:
grep -l strings /tmp/*.txt