Выпуск nomenus-rex 0.4.0, утилиты для массового переименования файлов

Доступна новая версия консольной утилиты Nomenus-rex, предназначенной для массового переименования файлов. Программа написана на языке C++ и распространяется на условиях лицензии GPLv3. Правила для переименования настраиваются с помощью конфигурационного файла. Например:

source_dir = “/home/user/work/source”; destination_dir = “/home/user/work/destination”; keep_dir_structure = false; copy_or_rename = “copy”; rules = ( { type = “date”; date_format = “%Y-%m-%d”; }, { type = “text”; text = “_”; }, { type = “dir”; // mode = “whole path”|”parent dir only” mode = “whole path”; separator = “-“; }, { type = “text”; text = “_”; }, { type = “integer”; // mode = “global”|”local at every dir” mode = “local at every dir”; start = 0; step = 1; padding = 5; }, { type = “extension”; // leave the “ext” variable empty to use an original extension ext = “”; // mode = “lowercase”|”uppercase”|”sic”; mode = “lowercase”; } );

При использовании указанных настроек утилита переименует файл “/home/user/work/source/TestDir2/file2.txt” в “/home/user/work/destination/2022-03-16_TestDir2_0.txt”. Утилита также умеет работать с директориями HOME и XDG_CONFIG_HOME (где ищет файл конфигурации в случае если к нему не указан полный пусть) и понимает сокращение “~” для обращения к домашнему каталогу.

Изменения в новой версии:

  • Добавлен новый вид “правил”, принимающий в качестве параметра текущее незавершённое имя. Это позволило добавить правило replace, заменяющее все вхождения подстроки на новую строку.
  • Теперь имена файлов сортируются по алфавиту перед обработкой. Ранее файлы обрабатывались в том порядке, в котором отдавались файловой системой. В следующей версии эта сотировка станет управляемой пользователем.
  • Несколько переработана документация, что сделало её более удобной.
  • Внутренние изменения в коде (начало создания тестов и новая шаблонная функция для чтения enum-переменных из файла конфигурации) которые призваны упростить добавление новых правил и уменьшить количество новых ошибок.
Release. Ссылка here.