Comece por loop sempre que terminar por último

1

Eu tenho aproximadamente 1 milhão de imagens em um diretório. Os arquivos foram numerados de 1 a n. Eu estou usando para loop para iterar sobre cada imagem. Como cada iteração é verificada por indivíduos, somente determinado número de iterações poderia ser feito em um dia. Quando eu começo o loop novamente no dia seguinte, o loop obviamente começa do primeiro arquivo novamente.

Salvei os arquivos iterados por meio do loop em um arquivo de texto e li a última linha do arquivo de texto antes que o loop seja iniciado todas as vezes. Eu estou tentando usar o último arquivo de leitura como um começo para o loop for.

O seguinte é o código feito até agora:

query=/ImageFolder/*.jpg
fil=$( tail -n 1 readfiles.txt )

for f in $query
    do
      python ~/runprog.py --query $f
    done

Não tenho certeza de como usar o $ fil como meu ponto de partida no loop for e o início da iteração de arquivos subsequentes a partir dele.

    
por Apricot 14.12.2017 / 09:41

1 resposta

3

Se o seu readfiles.txt contiver todos os arquivos já processados, você poderá usar grep para pesquisar se determinado foi feito ou não.

Depois de executar o script python, atualize esse arquivo com o arquivo processado.

for f in /ImageFolder/*.jpg; do
   if ! grep -q "$f" readfiles.txt; then 
      python ~/runprog.py --query "$f"
      echo "$f" >> readfiles.txt
   fi
done
    
por 14.12.2017 / 10:05

Tags