@asergrisa

Как получить дату из имени файла?

exiftool умеет писать в exif дату создания используя данные из имени файла, причем он понимает довольно много форматов. Есть ли какая утилита которая умеет извлекать из имени дату и которая работает не по шаблону, а сама определяет формат даты?
Вот пример таких файлов:
2018-06-11 19.16.34.jpg
IMG_20170803_124145.jpg
Либо можно как-то заставить exiftool писать в webp файлы метаданные?

PS: Повторяю, дату нужно получить из имени файла, а не из его метаданных. Причем не по фиксированному шаблону.
  • Вопрос задан
  • 792 просмотра
Решения вопроса 2
DrYurich
@DrYurich
Предприниматель
Здесь скрипт для jhead как раз для переборки различных имён. Мож пригодится ...
Ответ написан
@asergrisa Автор вопроса
В конце концов написал свой скрипт

for i in *.webp; do
  photo_date=$(basename "$i" ".webp" | tr ' ' '-' | egrep -o -m1 [0-9]\{4\}\([-_:\.\ ]?[0-9]\)\{10\})

  photo_date=$(echo "$photo_date" | tr -d "\_\-\:\.\ " | sed 's/\([0-9]\{4\}\)\([0-9]\{2\}\)\([0-9]\{2\}\)\([0-9]\{2\}\)\([0-9]\{2\}\)/\1:\2:\3 \4:\5:/')

  exiv2 -M"add Exif.Photo.DateTimeOriginal Ascii '$photo_date'" "$i"
done


Для моих нужд хватило
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@azazelpw
Linux SA
в bash есть команда stat
root@xxx:/storage# stat /script/xxx.file 
  File: /script/xxx.file
  Size: 1030      	Blocks: 8          IO Block: 4096   regular file
Device: 801h/2049d	Inode: 45875204    Links: 1
Access: (0777/-rwxrwxrwx)  Uid: (65534/  nobody)   Gid: (65534/ nogroup)
Access: 2018-06-12 21:00:01.308455845 +0700
Modify: 2018-06-08 14:36:08.429939719 +0700
Change: 2018-06-08 14:36:08.429939719 +0700

Пример использования
Сверка последнего изменения файла с сегодняшним днем.
#!/bin/bash
path=/xxx
if  [[ `date +%Y-%m-%d` = `stat $path/xxx.file |grep Modify| awk '{ print $2 }'` ]]
then echo 0
else echo 1 
fi
Ответ написан
saboteur_kiev
@saboteur_kiev Куратор тега bash
software engineer
Вы можете написать алгоритм разбора нескольких шаблонов.
Единой программы, которая разберет автоматом что-то вроде
YYYY-MM-DD hh.mm.ss.jpg
IMG_YYYYMMDD_hhmmss.jpg
- не существует.

НО если вы переберете все ваши файлы, возможно там всего-лишь 3-4 формата, для разбора которых достаточно скрипта в пару строк.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы