-
Notifications
You must be signed in to change notification settings - Fork 24
Examples
Navid edited this page Jan 19, 2025
·
19 revisions
Consider the following directory:
➜ ls
Nomino (2020) S1.E1.1080p.mkv
Nomino (2020) S1.E2.1080p.mkv
Nomino (2020) S1.E3.1080p.mkv
Nomino (2020) S1.E4.1080p.mkv
Nomino (2020) S1.E5.1080p.mkv- Rename files using
regexoption (-ris optional and can be omitted):
➜ nomino ".* S(\d+).E(\d+).*" "S{:2}E{:2}"
+-------------------------------+------------+
| Input | Output |
+-------------------------------+------------+
| Nomino (2020) S1.E1.1080p.mkv | S01E01.mkv |
| Nomino (2020) S1.E2.1080p.mkv | S01E02.mkv |
| Nomino (2020) S1.E3.1080p.mkv | S01E03.mkv |
| Nomino (2020) S1.E4.1080p.mkv | S01E04.mkv |
| Nomino (2020) S1.E5.1080p.mkv | S01E05.mkv |
+-------------------------------+------------+- Named capture groups are also supported:
➜ nomino ".* S(?<season>\d+).E(?<episode>\d+).*" "S{season:2}E{episode:2}"
+-------------------------------+------------+
| Input | Output |
+-------------------------------+------------+
| Nomino (2020) S1.E1.1080p.mkv | S01E01.mkv |
| Nomino (2020) S1.E2.1080p.mkv | S01E02.mkv |
| Nomino (2020) S1.E3.1080p.mkv | S01E03.mkv |
| Nomino (2020) S1.E4.1080p.mkv | S01E04.mkv |
| Nomino (2020) S1.E5.1080p.mkv | S01E05.mkv |
+-------------------------------+------------+?<season> and ?<episode> are named capture groups. S{season:2}E{episode:2} is equivalent to S{:2}E{:2} or S{1:2}E{2:2}.
- Rename files using
sortoption:
➜ nomino -s asc "{:3}"
+-------------------------------+---------+
| Input | Output |
+-------------------------------+---------+
| Nomino (2020) S1.E1.1080p.mkv | 001.mkv |
| Nomino (2020) S1.E2.1080p.mkv | 002.mkv |
| Nomino (2020) S1.E3.1080p.mkv | 003.mkv |
| Nomino (2020) S1.E4.1080p.mkv | 004.mkv |
| Nomino (2020) S1.E5.1080p.mkv | 005.mkv |
+-------------------------------+---------+➜ nomino -s desc "{:3}"
+-------------------------------+----------+
| Input | Output |
+-------------------------------+----------+
| Nomino (2020) S1.E5.1080p.mkv | 001.mkv |
| Nomino (2020) S1.E4.1080p.mkv | 002.mkv |
| Nomino (2020) S1.E3.1080p.mkv | 003.mkv |
| Nomino (2020) S1.E2.1080p.mkv | 004.mkv |
| Nomino (2020) S1.E1.1080p.mkv | 005.mkv |
+-------------------------------+----------+- Rename files using the following
map.jsonfile:
{
"Nomino (2020) S1.E1.1080p.mkv": "0101.mkv",
"Nomino (2020) S1.E2.1080p.mkv": "0102.mkv",
"Nomino (2020) S1.E3.1080p.mkv": "0103.mkv",
"Nomino (2020) S1.E4.1080p.mkv": "0104.mkv",
"Nomino (2020) S1.E5.1080p.mkv": "0105.mkv"
}➜ nomino -m map.json
+-------------------------------+----------+
| Input | Output |
+-------------------------------+----------+
| Nomino (2020) S1.E1.1080p.mkv | 0101.mkv |
| Nomino (2020) S1.E2.1080p.mkv | 0102.mkv |
| Nomino (2020) S1.E3.1080p.mkv | 0103.mkv |
| Nomino (2020) S1.E4.1080p.mkv | 0104.mkv |
| Nomino (2020) S1.E5.1080p.mkv | 0105.mkv |
+-------------------------------+----------+rename files by creating a map file using -g option, then use that map file to undo renaming (-E disables preservation of the output extension, so it should be added manually):
➜ nomino -E -g undo.json -r ".*.(mkv)" "a.{}"
+-------------------------------+-----------+
| Input | Output |
+-------------------------------+-----------+
| Nomino (2020) S1.E1.1080p.mkv | ____a.mkv |
| Nomino (2020) S1.E4.1080p.mkv | ___a.mkv |
| Nomino (2020) S1.E3.1080p.mkv | __a.mkv |
| Nomino (2020) S1.E2.1080p.mkv | _a.mkv |
| Nomino (2020) S1.E5.1080p.mkv | a.mkv |
+-------------------------------+-----------+
➜ nomino -m undo.json
+-----------+-------------------------------+
| Input | Output |
+-----------+-------------------------------+
| ____a.mkv | Nomino (2020) S1.E1.1080p.mkv |
| _a.mkv | Nomino (2020) S1.E2.1080p.mkv |
| __a.mkv | Nomino (2020) S1.E3.1080p.mkv |
| ___a.mkv | Nomino (2020) S1.E4.1080p.mkv |
| a.mkv | Nomino (2020) S1.E5.1080p.mkv |
+-----------+-------------------------------+Consider the following tree:
➜ tree
.
├── s1
│ ├── Nomino (2020) S1.E1.1080p.mkv
│ ├── Nomino (2020) S1.E2.1080p.mkv
│ └── Nomino (2020) S1.E3.1080p.mkv
└── s2
├── Nomino (2020) S2.E1.1080p.mkv
├── Nomino (2020) S2.E2.1080p.mkv
├── Nomino (2020) S2.E3.1080p.mkv
└── Nomino (2020) S2.E4.1080p.mkv- Read files from sub-directories, then create new sub-directories using
-kflag, and rename files. Note that the sub-directory depth is inferred using the number of filename separators (i.e./in Unix and\in Windows) inregexpattern which could be overwritten using--depthargument.-Edisables preservation of the output extension, so it should be added manually.
➜ nomino -E -k "s(\d+)/.*E(\d+).*" "Season {:2}/Episode {:2}.mkv"
+----------------------------------+--------------------------+
| Input | Output |
+----------------------------------+--------------------------+
| s1/Nomino (2020) S1.E1.1080p.mkv | Season 01/Episode 01.mkv |
| s1/Nomino (2020) S1.E2.1080p.mkv | Season 01/Episode 02.mkv |
| s1/Nomino (2020) S1.E3.1080p.mkv | Season 01/Episode 03.mkv |
| s2/Nomino (2020) S2.E1.1080p.mkv | Season 02/Episode 01.mkv |
| s2/Nomino (2020) S2.E2.1080p.mkv | Season 02/Episode 02.mkv |
| s2/Nomino (2020) S2.E3.1080p.mkv | Season 02/Episode 03.mkv |
| s2/Nomino (2020) S2.E4.1080p.mkv | Season 02/Episode 04.mkv |
+----------------------------------+--------------------------+➜ nomino -E --depth 2 -k "s(\d+)/.*E(\d+).*" "Season {:2}/Episode {:2}.mkv"
+----------------------------------+--------------------------+
| Input | Output |
+----------------------------------+--------------------------+
| s1/Nomino (2020) S1.E1.1080p.mkv | Season 01/Episode 01.mkv |
| s1/Nomino (2020) S1.E2.1080p.mkv | Season 01/Episode 02.mkv |
| s1/Nomino (2020) S1.E3.1080p.mkv | Season 01/Episode 03.mkv |
| s2/Nomino (2020) S2.E1.1080p.mkv | Season 02/Episode 01.mkv |
| s2/Nomino (2020) S2.E2.1080p.mkv | Season 02/Episode 02.mkv |
| s2/Nomino (2020) S2.E3.1080p.mkv | Season 02/Episode 03.mkv |
| s2/Nomino (2020) S2.E4.1080p.mkv | Season 02/Episode 04.mkv |
+----------------------------------+--------------------------+