phd_ru: (Default)
[personal profile] phd_ru
Пусть есть большой список директорий типа

АЙВАЗОВСКИЙ Иван
БРЮЛЛОВ Карл
ШИШКИН Иван

Всего сотни три директорий. Хочется переименовать их в

Айвазовский Иван
Брюллов Карл
Шишкин Иван

Переименовывать их руками - утомительно, и велика вероятность опечаток. Писать программу переименования самому - лень для одноразовой задачи.

Программа mmv умеет копировать/переименовывать файлы по маске, но довольно долго я не мог ей воспользоваться - она падала по segfault. И шаблоны у неё более примитивные. И её конверсия регистра работает только с ascii.

Вот как это делается в mc - переименовать файлы/директории по исходной маске
^\(.\)\([^ ]+\) \(.\)\(.+\)$
в результирующую маску
\u\1\L\2\E \u\3\L\4

\u и \l выполняют смену регистра для одного следующего символа, \U и \L для всех до \E или до конца файла. Шаблоны \1-\4 соответствуют исходным скобочкам - 1 символ фамилии, потом остаток фамилии до пробела, 1 символ имени, потом остаток имени до конца строки. При этом
"БОРИСОВ-МУСАТОВ Виктор Эльпидифорович"
переименовался в
"Борисов-мусатов Виктор эльпидифорович"
, но несколько подобных ошибок я исправил уже вручную.

А потом меня спрашивают, и чего я им всё время пользуюсь...

January 2026

S M T W T F S
     123
45678910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 10th, 2026 03:56 am
Powered by Dreamwidth Studios