nomino
nomino copied to clipboard
Batch rename utility for developers
nomino
Batch rename utility for developers

How to install
Pre-Compiled
You can download a pre-compiled executable for Linux, MacOS and Windows operating systems, then you should copy that executable to a location from your $PATH env:
You might need to run chmod +x nomino-linux-64bit or chmod +x nomino-macos-64bit.
Arch Linux
You can use nominoAUR package to install nomino in Arch Linux.
Build Manually
If you prefer to build nomino manually, or a pre-compiled executable is not provided for your target, then you can build nomino from scratch:
- Install Rust:
curl -sSf https://sh.rustup.rs | sh - Run
cargo install nomino
Usage
USAGE:
nomino [FLAGS] [OPTIONS] [[SOURCE] OUTPUT]...
FLAGS:
-e, --extension Preserves the extension of input files in 'sort' and 'regex' options
-h, --help Prints help information
-k, --mkdir Recursively creates all parent directories of '<OUTPUT>' if they are missing
-w, --overwrite Overwrites output files, otherwise, a '_' is prepended to filename
-p, --print Prints the map table to stdout
-t, --test Runs in test mode without renaming actual files (dry-run)
-V, --version Prints version information
OPTIONS:
--depth <DEPTH> Optional value to overwrite inferred subdirectory depth value in 'regex' mode
--max-depth <DEPTH> Optional value to set the maximum of subdirectory depth value in 'regex' mode
-d, --dir <PATH> Sets the working directory
-g, --generate <PATH> Stores a JSON map file in '<PATH>' after renaming files
-m, --map <PATH> Sets the path of map file to be used for renaming files
-r, --regex <PATTERN> Regex pattern (RE2 syntax) to match by filenames
-s, --sort <ORDER> Sets the order of natural sorting (by name) to rename files using enumerator [possible values: ASC, DESC]
ARGS:
<[SOURCE] OUTPUT>... OUTPUT is the pattern to be used for renaming files, and SOURCE is the optional regex pattern to match by filenames. SOURCE has the same function as -r option
Map file format
{
"<input1>": "<output1>",
"<input2>": "<output2>",
"<...>": "<...>"
}
Output
The output is necessary when using --sort or --regex options.
Regex
The accepted syntax of regex pattern is RE2.
Placeholders
- Placeholders have the format of
{I:P}whereIis the index of captured group andPis the padding of digits with0. For example,{2:3}means the third captured group with a padding of 3, i.e.1is formatted as001. - Indices start from
0, and{0}means the filename. - The index
Icould be dropped, i.e.{}or{:3}. In this case an auto incremental index is used which starts from1. For example,{} {}equals{1} {2}. {and}characters could be escaped using\character, i.e.\\{and\\}in cli.- Padding is only used for positive numbers, e.g. the formatted result of
{:3}for1is001, for-1is-1and foraisa. - If
--sortoption is used, the first index{0}is the filename and the second index{1}or first occurrence of{}is the enumerator index.