Пусть есть большой список директорий типа
АЙВАЗОВСКИЙ Иван
БРЮЛЛОВ Карл
ШИШКИН Иван
Всего сотни три директорий. Хочется переименовать их в
Айвазовский Иван
Брюллов Карл
Шишкин Иван
Переименовывать их руками - утомительно, и велика вероятность опечаток. Писать программу переименования самому - лень для одноразовой задачи.
Программа mmv умеет копировать/переименовывать файлы по маске, но довольно долго я не мог ей воспользоваться - она падала по segfault. И шаблоны у неё более примитивные. И её конверсия регистра работает только с ascii.
Вот как это делается в mc - переименовать файлы/директории по исходной маске
^\(.\)\([^ ]+\) \(.\)\(.+\)$
в результирующую маску
\u\1\L\2\E \u\3\L\4
\u и \l выполняют смену регистра для одного следующего символа, \U и \L для всех до \E или до конца файла. Шаблоны \1-\4 соответствуют исходным скобочкам - 1 символ фамилии, потом остаток фамилии до пробела, 1 символ имени, потом остаток имени до конца строки. При этом
"БОРИСОВ-МУСАТОВ Виктор Эльпидифорович"
переименовался в
"Борисов-мусатов Виктор эльпидифорович"
, но несколько подобных ошибок я исправил уже вручную.
А потом меня спрашивают, и чего я им всё время пользуюсь...