Comando para adicionar hora específica em um nome de arquivo?

1

Acabei de voltar da viagem e tentei organizar um mínimo de fotos tiradas por minha esposa e eu com quatro dispositivos: nossos dois smartphones e duas câmeras.

Eu escolho renomear todos os arquivos com PyRenamer (EXIF) assim: YYYYMMDD_HHMMSS.jpg

Ambos os smartphones e uma câmera estavam na hora local, sem problemas. Mas a câmera da minha esposa teve um turno de tempo de 5:46.

Minha pergunta é simples: como eu poderia adicionar 5:46 a cada arquivo?

Agradecemos antecipadamente.

    
por DansLeRuSH 30.10.2016 / 13:38

1 resposta

1

OBSERVAÇÃO : o seguinte não altera os dados EXIF nem o registro de data e hora real dos arquivos - apenas seus nomes. Pode ser preferível mudar todos os três consistentemente (talvez possível usando exiftool ?)

Parece ser possível usar o comando prename / rename baseado em perl, usando strptime para ler a string de tempo formatada e, em seguida, strftime para escrevê-lo novamente após adicionar um deslocamento - em segundos ( convertido implicitamente para um objeto Time :: Piece).

Com base nos comentários, "a câmera da minha esposa teve um deslocamento de tempo de 5:46" , você parece dizer 5 horas e 46 minutos (em vez de, digamos, 5 minutos e 46 segundos) e requer uma mudança (para frente) de 5 x 3600 + 46 x 60 = 20760 segundos. Então você poderia fazer:

prename -vn -- '
BEGIN{use Time::Piece};
s/\d+_\d+/(20760+Time::Piece->strptime($&, "%Y%m%d_%H%M%S"))->strftime("%Y%m%d_%H%M%S")/e
' *.jpg
20161019_112301.jpg renamed as 20161019_170901.jpg

O sinal -n é para testes - remova-o quando tiver certeza de que o comando está executando a conversão correta.

Veja esta questão relacionada Como posso converter em lote nomes de pastas de um formato de data para outro

    
por steeldriver 30.10.2016 / 15:41