Isso pode ser feito através de
find dir -type f -exec grep -H '+ ID$' {} +
Isso localizará todos os arquivos regulares dentro ou abaixo do diretório dir
e, em seguida, executará grep -H '+ ID$'
em lotes do maior número possível deles. O resultado conterá o nome do arquivo correspondente à expressão regular e as linhas do arquivo correspondente.
Para obter apenas os nomes dos arquivos, use -l
no lugar de -H
com grep
e, para obter apenas as linhas correspondentes, use -L
.
A expressão regular + ID$
corresponderá a qualquer linha em um arquivo que contenha a string exata + ID
no final da linha.
Ou, sem find
, mas com um grep
que pode recorrer a subdiretórios:
grep -R '+ ID$' dir
Em sistemas com grep
que não faz -H
(essa é uma opção não padrão), você pode usar
find dir -type f -exec grep '+ ID$' /dev/null {} +
Se você quiser apenas as linhas correspondentes (e nenhum nome de arquivo) em um sistema como este, cat
os arquivos juntos e grep:
find dir -type f -exec cat {} + | grep '+ ID$'