Batch renomeando arquivos de índice inicial diferente de zero

1

Estou mesclando dois conjuntos de dados e eles estão no formato 40000X-????.mrc . No entanto, ambos começam com 0000 . Portanto, quero iniciar o segundo conjunto de dados após o final do primeiro (se o primeiro conjunto de dados tiver 12 arquivos, quero que o segundo conjunto de dados comece com 40000X-0013.mrc e assim por diante).

Encontrei algumas respostas parciais on-line, então meu código é o seguinte:

#!/usr/bin/env bash
c=12
for f in *.mrc ; do
  mv -v "$f" "40000X-$(printf '%0*d' 4 $c).mrc"
  let c=c+1
done

Resultado esperado: Renomeia todos os arquivos em ordem, começando em 12, continuando até que todos os arquivos sejam processados.

Resultado real: Devido à opção -v , ele afirma ter renomeado todos os arquivos, mas na inspeção do diretório, apenas os últimos 12 parecem permanecer. Do teste, isso depende do índice inicial c e, se eu alterá-lo, ele pode realmente percorrer mais, mas atrapalha o índice inicial.

Qualquer ajuda com isso é apreciada.

    
por Wiitalian 17.08.2016 / 22:11

0 respostas