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