Você quis dizer apenas grep
do (s) arquivo (s) em vez de (inutilmente) cat
para grep
?
grep strings /tmp/*.txt
O que o cat
faz é combinar todos os arquivos *.txt
em um grande "arquivo". Se você tiver cat
de vários arquivos, grep
verá apenas uma entrada sem um nome real - todos os seus arquivos serão combinados, alimentados pelo canal. Isso não vai te dar os nomes dos arquivos, já que basicamente fez de tudo um arquivo grande.
Se você quiser que apenas grep
retorne os arquivos correspondentes, use a opção -l
:
grep -l strings /tmp/*.txt