Se eu entendi sua meta corretamente, o seguinte fará o que você deseja:
find ./recup*/ -name '*.txt' -exec grep -qi "searchPattern" {} \; -exec cat {} \; > outputfile.txt
Isso procurará todos os arquivos *.txt
em ./recup*/
, teste cada um por searchPattern
, se corresponder a cat
do arquivo. A saída de todos os arquivos cat
ed será direcionada para outputfile.txt
.
Repita para cada padrão e arquivo de saída.
Se você tiver um número muito grande de diretórios correspondentes a ./recup*
, poderá acabar com argument list too long error
. A maneira simples de contornar isso é fazer algo assim:
find ./ -mindepth 2 -path './recup*.txt' -exec grep -qi "searchPattern" {} \; -exec cat {} \; > outputfile.txt
Isto irá corresponder ao caminho completo. Então, ./recup01234/foo/bar.txt
será correspondido. O -mindepth 2
é para que não corresponda a ./recup.txt
ou ./recup0.txt
.