O script "interno" que find
chama não tem acesso à variável $input2
.
Você pode fazer
find /*/"$input1"/*/logs/*/*/*/* -name '*.gz' \
-exec sh -c 'gzip -cd "$1" | grep -e "$0"' "$input2" {} \;
Isso transmite o valor de $input2
para o script interno e o disponibilizará como $0
, enquanto o argumento do nome do arquivo será $1
.
Como alternativa, apenas deixe find
descompactar os arquivos e filtrar a saída de find
como um todo:
find /*/"$input1"/*/logs/*/*/*/* -name '*.gz' \
-exec gzip -cd {} + | grep -e "$input2"
Como find
já entra em todos os subdiretórios do diretório principal, provavelmente você pode deixar de fora alguns dos globs de nome de arquivo e usar -mindepth 4
(se o seu find
suportar essa opção) e adicionar -type f
para sinalizar que você está interessado apenas em arquivos regulares:
find /*/"$input1"/*/logs -mindepth 4 -type f -name '*.gz' \
-exec gzip -cd {} + | grep -e "$input2"