Групповое переименование

Обсуждение Total Commander. Установка, использование, настройка, решение проблем, скрытые функции. Обсуждение новых версий.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

vitaliy_13 писал(а):я способен определить многотомный архив от обычного файла
Вам проще – вы к ним ближе расположены. :)
vitaliy_13 писал(а):у меня добавился новый файл и мне нужно его "вставить" так, чтобы он соответствовал своему месту в списке: то есть в сортировке файлов по имени имел правильный порядок счётчика
Не уверен, что и теперь правильно понял задачу. Поправьте, если что.
На примере с именами двух файлов, что вы приводили. Допустим, добавились два новых файла, назовём их [WinCmd] - Abby Adams – 202 и [WinCmd] - Abby Adams - 203 , прибавив к требуемым номерам лишние две сотни.
Выделяем все 4 файла (при сортировке в панели по имени), вызываем переименование (Ctrl+M), вводим маску для имени файла [N1--4][C:3], перемещаем в списке файлов элементы вверх/вниз, ориентируясь на колонки Старое имя и Новое имя и выполняем переименование.
vitaliy_13
Сообщения: 5
Зарегистрирован: Пн янв 15, 2024 18:56

Сообщение vitaliy_13 »

sa
Извиняюсь, наверное сумбурно объяснил задачу. В любом случае уже разобрался: мне помогла маска [N1--4].
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

vitaliy_13 писал(а):мне помогла маска [N1--4]
Идея использовать маску [N1--4][C:3] заключается в том, чтобы за одну операцию переименования убрать старый счётчик ([N1--4]) и сразу же установить новый ([C:3]).
Lnk
Сообщения: 99
Зарегистрирован: Сб май 13, 2023 10:16

Сообщение Lnk »

Попробую задать архисложный вопрос, связанный с регекспами.
Возможно такое и не выйдет, но общая схема тут имеется, потому надежда есть.
Имеется pne.db_base_7777_xmi010021007835001.pdf
можно ли через регекспы сделать из него
pne.db_base_x_xmi010_007835_7777_xmi010021007835001.pdf
Постарался выделить цветом для наглядности, то есть добавляется
по сути _x_xmi010_007835_
где х это первая буква идентификатора(синего), то бишь елси будет tec008, к примеру, то она будет t . Остальное берется из xmi010021007835001.pdf
xmi010 идентификатор буквенно3-цифровой3,
007835 классификатор группы из 6 цифр.
Количество цифр и букв всегда одинаково.
021 может менятся, но и ни на что ни влияет, всегд 3 цифры. 001 это номер файла всего лишь, тоже не меняет ничего.

Неважно сколько будет проходок, если надо - пусть хоть сколько.
Если для выполнения задачи надо изменить на другой разделитель, а не _, то без проблем, пусть хоть -, хоть * или вобще что-то иное - не проблема.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

Lnk
А если без регекспов?
Маска для: имени файла
[N1-12][N18]_[N18-23]_[N27-32][N12-]

Или длина имён файлов может быть разной?
Lnk
Сообщения: 99
Зарегистрирован: Сб май 13, 2023 10:16

Сообщение Lnk »

sa,
тоже шикарно! Все работает.
Длина имен, нет, в конкретной базе не может быть разной.
Спасибо огромное!

Регекспы конечно были бы интересней, ибо диапазон применения не ограничивается только ИГП и интересно как делается и можно ли провернуть такое вобще ими.

/
А, таки возникает проблема, если меняется что-либо..(
напр pne.up.db_basea_8888_xio001013005421001.pdf превращается в такое
pne.up.db_ba8_888_xi_101300asea_8888_xio001013005421001
Не увидел, что есть всякие. Видимо под конкретную задачу надо химичить :(
Последний раз редактировалось Lnk Вт янв 23, 2024 22:24, всего редактировалось 1 раз.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

Lnk писал(а):Регекспы конечно были бы интересней
Если я не напутал:

Найти: (.{12})(.{5})(.{1})(.{5})(.{3})(.{6})
Заменить на: $1$3_$3$4_$6_$2$3$4$5$6
[V] Рег. выраж.
Lnk
Сообщения: 99
Зарегистрирован: Сб май 13, 2023 10:16

Сообщение Lnk »

Код: Выделить всё

Найти: (.{12})(.{5})(.{1})(.{5})(.{3})(.{6})
Заменить на: $1$3_$3$4_$6_$2$3$4$5$6
[V] Рег. выраж.
Работает шикарно!
НО получается что при изменении количества букв, ломается шаблон.
pne.up.db_basea_8888_xio001013005421001.pdf превращается
в pne.up.db_ba8_888_xi_101300asea_8888_xio001013005421001.pdf

Попытаюсь понять принцип работы и что надо менятЬ, СПАСИБО ОГРОМНОЕ!

//
Вобще очевидно я тупанул с задачей, зря усложнив ее, надо было брать за общую задачу
basea_7777_xmi010021007835001.pdf
(basea идентична base) и превращать в
baseа_x_xmi010_007835_7777_xmi010021007835001.pdf.
А потом уже прикручивать наименование общего родителя базы как вы подсказали в viewtopic.php?t=13491.
Тут слишком сложное для меня получается нагромождение) Но буду пробовать. :)
Последний раз редактировалось Lnk Вт янв 23, 2024 22:57, всего редактировалось 1 раз.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

Попробуйте указать (?-g)(.*_.*_) вместо (.{12}) .
Lnk
Сообщения: 99
Зарегистрирован: Сб май 13, 2023 10:16

Сообщение Lnk »

sa писал(а):Попробуйте ...
Гениально! Работает с обоими!
/
Протестировал примерно на многих тысячах файлов, есть всякие
pne.old.db, pne.main.db и куча других, а базы вообще похоже полный алфавит, но ничего не ломается!

Код: Выделить всё

Найти: (?-g)(.*_.*_)(.{5})(.{1})(.{5})(.{3})(.{6})
Заменить на: $1$3_$3$4_$6_$2$3$4$5$6
[V] Рег. выраж.

Работает идеально)

Мне понять схему пока не удалось, может и не пойму даже, но я могу использовать данный шаблон под многие задачи с подстановкой и переименованием.
sa,
СПАСИБО ОГРОМНОЕ!
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

Lnk писал(а):Мне понять схему пока не удалось
(?-g)(.*_.*_) формирует первое подвыражение для поиска+замены: от начала имени файла до второго появления символа подчёркивания (включая его), а остальные подвыражения (со 2-го по 6-ое) состоят из указанного в фигурных скобках количества символов.
Скорее всего, есть и более лаконичные решения.
Lnk
Сообщения: 99
Зарегистрирован: Сб май 13, 2023 10:16

Сообщение Lnk »

sa,
хорошее понятное обьяснение. Для меня всегда особо важны были шаблоны, как пример на который я могу опиратся и редактировать, а этот шаблон шикарен! И вкупе с пояснением, он еще более ценен :D
Архисложная задача решена, вашему мастерству можно лишь позавидовать(в хорошем смысле слова).
СПАСИБО)

А более лаконичное решение наверное мне ни к чему). Кнопок можно сделать много, а сколько там будет символов -не важно)
crimea66
Сообщения: 2
Зарегистрирован: Ср фев 21, 2024 22:14
Откуда: Симферополь

Сообщение crimea66 »

Категорически приветствую, уважаемые!

Вот такой вопрос.
Я записываю с плеера потоковое аудио (по принципу магнитофона), чтобы потом можно было слушать во внешнем мп3-плеере. Файлы пишутся так же, как они транслируются сервером, например "Abba - Money, Money.mp3". На компьютере можно отсортировать как угодно, а мп3-плеер этого не умеет и сортирует только по имени. Само собой, файлы имеют и временнУю метку. И мне нужно сначала отсортировать файлы по времени их создания, а затем переименовать, т.е. чтобы внешний мп3-плеер воспроизводил их именно в том порядке, в каком они транслировались, а не по имени файла. Для этого приходится вручную править имена файлов, предварительно отсортировав их по времени по возрастанию. Когда десяток файлов - легко, но когда этих файлов штук 300 - немножко утомительно, мягко говоря...

Приведу маленький пример того, что мне нужно, а то мало ли, вдруг не очень толково пояснил :)

Вот сортировка по имени файла (справа дату не пишу, только время):

Art Ruprect - Glorious Day.mp3 18:22
Art Sherrod Jr - Feels So Good.mp3 18:48
Boz Scaggs - Lowdown.mp3 17:55
David Garfield - Stay.mp3 18:38
James Ingram - Yah Mo Be There.mp3 18:31


Вот сортировка по времени [по возрастанию](как нужно мне):

Boz Scaggs - Lowdown.mp3 17:55
Art Ruprect - Glorious Day.mp3 18:22
James Ingram - Yah Mo Be There.mp3 18:31
David Garfield - Stay.mp3 18:38
Art Sherrod Jr - Feels So Good.mp3 18:48

Вот в таком порядке мне нужны файлы для внешнего мп3-плеера.
Вопрос: как переименовать имена файлов по типу 001.mp3, 002.mp3, 003.mp3 и т.д.? (мне не нужны названия самих песен)
Во вкладке "Групповое переименование", мягко говоря, не очень просто понять, что там и как!
Заранее спасибо! Пардон за много букв! :)
Аватара пользователя
Monarch-LFV
Сообщения: 360
Зарегистрирован: Пн июл 22, 2019 13:20

Сообщение Monarch-LFV »

crimea66
Задача наилегчайшая. После сортировки по дате выделяете все файлы и вызываете ИГП. В маске имени указываете [C:3].
Если нужно сохранить имя, то так: [C:3] [N].
crimea66
Сообщения: 2
Зарегистрирован: Ср фев 21, 2024 22:14
Откуда: Симферополь

Сообщение crimea66 »

Monarch-LFV, ох ты ж! :shock: Благодарность с поклоном! :)
Ответить