Faça um loop sobre os arquivos em dir1
, obtenha o nome de cada arquivo, processe-o, escreva para o arquivo de saída:
for path in dir1/*; do
name="${path##*/}"
task1 "$path" | task2 | task3 --output "dir2/$name"
done
A substituição de variável ${path##*/}
assumirá o valor da variável path
e removerá tudo até (e incluindo) o último /
. Isso produz o nome de base do arquivo.
task1
é então executado no arquivo em dir1
, o resultado é passado para task2
e a saída disso é dada para task3
. A última tarefa usa dir/$name
como operando para sua opção --output
.