Команда для добавления определенного времени на имени файла?

Я просто возвратился из прохождения и попытки организовать минимальные фотографии, сделанные моей женой и мной с 4 устройствами: наши 2 смартфона и 2 камеры.

Я принимаю решение переименовать все файлы с PyRenamer (EXIF) как это: YYYYMMDD_HHMMSS.jpg

Оба смартфона и одна камера были в местное время, без проблем. Но камера моей жены имела временной сдвиг 5:46.

Мой вопрос прост: как я мог добавить 5:46 к каждому файлу?

Большое спасибо заранее.

1
задан 30 October 2016 в 15:38

1 ответ

Примечание: следующее не изменяет или данные EXIF или фактическую метку времени файлов - просто их имена. Может быть предпочтительно изменить все три последовательно (возможно, возможное использование exiftool?)


Это, кажется, возможное использование базирующегося жемчуга prename / rename команда, с помощью strptime читать в отформатированной строке времени, затем strftime записывать его обратно после добавления смещения - в секундах (неявно преобразованный во Время:: объект Части).

На основе комментариев, камерой "моей жены имел временной сдвиг 5:46", Вы, кажется, имеете в виду 5 часов 46 минут (а не, скажем, 5 минут 46 секунд), и Вы требуете сдвига (вперед) 5 x 3600 + 46 x 60 = 20 760 секунд. Таким образом, Вы могли сделать:

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

-n флаг для тестирования - удаляют его, когда Вы уверены, что команда выполняет правильное преобразование.

Посмотрите этот связанный вопрос, Как может я пакетные имена папок преобразования от одного формата даты до другого

1
ответ дан 7 December 2019 в 15:45

Другие вопросы по тегам:

Похожие вопросы: