Я восстановил удаленные видеофайлы с SD-карты, и теперь я не могу отсортировать их по дате.
Я вижу "закодированную дату" с mediainfo filename
.
Как я могу использовать "закодированную дату" для видео вида, даже переименуйте их согласно той дате или еще лучше, перепишите "измененную дату" к свойствам файла?
Принятие строки вывода, который Вы имеете, выглядит примерно так (формат даты не имеет значения):
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"
переименовывают файлы