Script Bash para executar script python para todas as imagens em todos os subdiretórios [duplicado]

1

Eu tenho subpastas no diretório atual assim:

ls

apples  bananas  oranges  potatoes

Cada subpasta inclui um número diferente de imagens .jpg.

cd apples

ls

000000522638.jpg  000000522713.jpg  000000522751.jpg

Eu tenho um programa Python personalizado baixado de uma fonte diferente, que modifica imagens, e toma o caminho da imagem de entrada e o caminho da imagem de saída como argumento:

python modifyImage.py path/to/input/image.jpg path/to/output/image.jpg

Descrição do problema:

Eu quero aplicar este programa para cada imagem em determinados subdiretórios (maçãs, laranjas etc.). Há muitas pastas e imagens com nomes arbitrários, então não posso fazer isso manualmente. A solução possível seria, em primeiro lugar, encontrar todos os caminhos de imagem * .jpg e enviá-los como argumento para o script python.

E eu fiz script para atualizar arquivos * .jpg apenas no diretório atual como este

for file in *.jpg
do
  python modifyImage.py /"$file" /"$file"
done

Mas eu preciso do script acima para trabalhar com subdiretórios . Por favor ajude.

    
por nintendo64 17.05.2018 / 03:17

1 resposta

1

De Super User eles nos dizem como percorrer subdiretórios:

for d in */ ; do
    echo "$d"
done

Usando essa referência, você pode usar loops for aninhados:

for d in */ ; do
    for file in "$d"/*.jpg
    do
        python modifyImage.py /"$file" /"$file"
    done
done
    
por WinEunuuchs2Unix 17.05.2018 / 03:29