Как переименовать восстановленные после удаления mp4 видеофайлы согласно “закодированной дате”

Я восстановил удаленные видеофайлы с SD-карты, и теперь я не могу отсортировать их по дате.

Я вижу "закодированную дату" с mediainfo filename.

Как я могу использовать "закодированную дату" для видео вида, даже переименуйте их согласно той дате или еще лучше, перепишите "измененную дату" к свойствам файла?

1
задан 23 December 2017 в 10:10

1 ответ

Принятие строки вывода, который Вы имеете, выглядит примерно так (формат даты не имеет значения):

Encoded date               : 2016-11-20

Вы могли переименовать файлы как их даты с небольшим сценарием...

i=0; for f in *; do printf -v new "$(mediainfo "$f" | sed -nr 's/Encoded date\s+: (.*)/\1/p')-%02d.mp4" "$((++i))"; echo mv -v -- "$f" "$new"; done

я даю им заключительное число, чтобы гарантировать, чтобы файлы с той же датой не заканчивались с точно тем же именем, которое заставило бы некоторых быть перезаписанными. Новые имена файлов будут 2016-11-20-01.mp4 и т.д. или независимо от того, что формат даты с "Закодированной даты" для Вас. Удалите echo после тестирования для фактического переименования файлов. Больше читаемой версии:

i=0
for f in *; do 
   printf -v new "$(mediainfo "$f" | sed -nr 's/Encoded date\s+: (.*)/\1/p')-%02d.mp4" "$((++i))"
   echo mv -v -- "$f" "$new"
done

Объяснение

  • i=0 начинает выполнять итерации от 0
  • for f in * для всех файлов в текущем каталоге (замена соответствующим путем, или шарик при необходимости)
  • printf -v new форматируют новое имя как это
  • $(mediainfo "$f" | sed -nr 's/Encoded date\s+: (.*)/\1/p'), извлекают информацию о дате из Закодированного поля даты
  • -%02d.mp4" "$((++i))", добавляют, что число и расширение в конец каждого имени файла
  • mv -v -- "$f" "$new" переименовывают файлы
2
ответ дан 7 December 2019 в 13:40

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

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