Vamos pegar este arquivo de amostra:
$ cat file.txt
=putSomething here;
Agora, para encontrar todos os arquivos .txt no diretório atual:
$ grep -n '^[[:space:]]*=' *.txt
file.txt:1: =putSomething here;
Se você quiser encontrar todos os arquivos .txt no diretório atual e todos os seus subdiretórios , use:
$ grep -rn '^[[:space:]]*=' --include '*.txt'
subdir/another.txt:1: =putSomething here;
file.txt:1: =putSomething here;
Notas
-
findexargsnão são necessários aqui. Com a opção-r,greppesquisa de forma recursiva por meio de subdiretórios. -
--include '*.txt'limitsgreppara arquivos correspondentes ao glob*.txt. -
^corresponde no início de uma linha.[[:space:]]*corresponde a zero ou mais caracteres em branco.=corresponde a um sinal de igual. Em expressões regulares POSIX, não há nada de especial sobre=, de modo que possa ser tratado como qualquer outro caractere. -
Terminar um regex do grep com
.*$não altera quais linhas são correspondidas..*$corresponde a qualquer caractere ou se nenhum caractere for seguido. O único motivo para usar.*$é alterar o que o grep destaca como texto correspondente.