вроде застрял здесь. У меня есть фотографии в каталоге на 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.jpg1 из 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 ... :-(

0