Eu uso find
para esse tipo de coisa e faço com que execute grep
nos arquivos correspondentes. Usando a regex do @dubiousjim acima:
find ./ -name "*.txt" -exec grep -Hn --color=auto 'tt[0-9]\{1,10\}' {} \;
Atualizar
Desculpe por inchar isso, mas senti que deveria voltar e explicar as opções com mais detalhes ...
O comando find
acima é essencialmente dois comandos separados, reunidos em um com a opção '-exec'.
Este primeiro bit, espero, é bastante auto-explicativo: -
find ./ -name "*.txt"
Mas o subcomando -exec
do find tem sua própria sintaxe especial.
{}
é específico da opção find
e sua -exec
, assim como \;
. {}
é substituído pelo nome completo do caminho correspondente e o \;
significa o final dos argumentos da linha de comando para o programa exec'd, que neste caso é grep
.
grep -Hn --color=auto 'regex' {} \;
Eu uso essas opções em uma tentativa de replicar a aparência de grep -r
, imprimindo com cores, números de linha ( -n
) e nome de arquivo ( -H
) para cada expressão correspondente.
Observe que o alias não funciona nos comandos exec'd por find
, e é por isso que adiciono '--color=auto'
manualmente.