Eu quero listar os arquivos que contêm um padrão, sem gerar a(s) linha(s) que contém o padrão. Eu suponho que é possível fazer isso com grep
. Como devo usar grep
nesse sentido? Por exemplo, o comando a seguir fornece todas as linhas contendo "stringpattern" (não diferencia maiúsculas de minúsculas) em todos os .txt
arquivos. Eu quero ter apenas o nome do arquivo (± o número da linha).
grep -ni stringpattern *.txt
Idealmente, se a string/padrão estiver presente mais de uma vez em um arquivo, gostaria de ter várias linhas de saída para esse arquivo.
Se você precisar apenas de arquivos que correspondam:
Eu não acho que você possa usar apenas grep para imprimir apenas arquivos e números de linha, porque com option
-n
, ele gera em cada linha 'file:line:match'. Se os nomes dos arquivos não contiverem:
nem caracteres de nova linha, você poderá canalizar issocut
para obter apenas o que deseja.O
/dev/null
é necessário para o caso em que é*.txt
expandido para apenas um nome de arquivo ondegrep
, de outra forma, não imprimiria o nome do arquivo. Com a implementação GNUgrep
ou compatível, você pode usar o-H
/--with-filename
em vez de garantir que o nome do arquivo seja sempre impresso.