Я искал везде, но не нашел, как вернуть содержимое файла, которое соответствует заданным словам или регулярному выражению.
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'
.