вроде застрял здесь. У меня есть фотографии в каталоге на debian (растянуть, переименовать; на нем запущено следующее облако) с фотографиями из одной поездки на лыжах, снятыми с моего телефона (Android Moto G5, имена файлов IMG_20190202...
) и телефона моей подруги (iPhone 5, имена файлов 19-02-02...
). Поскольку nextcloud не может сортировать по exif-данным, имеет смысл иметь постоянную схему именования фотографий для сортировки по этой (и, следовательно, по дате). Я подумал, что хотел бы использовать rename
, но не могу понять, как достичь следующего:
19-02-02 16-05-45 4094.jpg => IMG_20190202_160545 4094.jpg
(номер суффикса, например, "4094", должен остаться на первый взгляд, чтобы увидеть, кто сделал снимок)
проблемы:
а) вставить IMG_20
там, где его нет. Это уже сбивает меня с толку, так как rename -n 's/[^IMG_]/IMG_20/' 19-02-02 16-05-45 4094.jpg
производит IMG_209-02-02 16-05-45 4094.jpg
(с 1
из 2019
отсутствует). Как изменить замену, чтобы включить первый найденный символ?
б) удалить все вхождения -
и заменить первый space
на -
. Не знаю, как это сделать ...
Любая помощь приветствуется!
РЕДАКТИРОВАТЬ:
Я нашел своего рода решение. Но он состоит из трех этапов (и, боюсь, нужен четвертый):
1) rename -n 's/^([^IMG_])/IMG_20$1/' *.jpg
2) rename -n 's/-//g' *.jpg
3) rename -n 's/ /_/' *.jpg
НОВАЯ ПРОБЛЕМА: nextcloud (или проводник Windows) по-прежнему не сортируется правильно, так как к снимкам, сделанным в Moto, добавлено 3 цифры, например, к снимку, сделанному в 13 ч. называется ... 130547123.jpg. Это большее число, чем ... 200510 ... например (снимок сделан в 20h05min10sec), следовательно, оно будет указано позже. Поэтому мне нужно регулярное выражение, чтобы удалить три цифры в поз. 20,21,22 в этих файлах! Но на фотографиях iPhone это приведет к удалению группы из четырех цифр, которая позволяет различать фотографии, сделанные с помощью Moto, и фотографии, сделанные с помощью iPhone ... :-(