4 个版本

0.2.0 2020年7月25日
0.1.2 2020年7月18日
0.1.1 2020年7月18日
0.1.0 2020年7月18日

#2370命令行工具

MIT 许可证

19KB
317

重命名器

文件批量重命名工具。

特性

  • 使用强大的 Rust 正则表达式引擎 在您的文件中使用一个或多个模式进行重命名。
  • 为文件添加前缀或后缀。

而且,嗯,我认为它相当快?我希望它也是跨平台的,但到目前为止,我只在 *nix 系统上进行了测试。

安装

请参阅 发布页面 以获取预构建的二进制文件。

使用 Cargo

$ cargo install renamer

用法

USAGE:
    renamer [FLAGS] [OPTIONS] <pattern> <files>...

FLAGS:
    -d, --dry-run                 Perform a dry-run. Do everything but the actual renaming
    -f, --force                   Do not exit or ask for confirmation when overwriting files
    -g, --global                  Test the regular expression against all possible matches instead of only the first
    -h, --help                    Prints help information
        --ignore-invalid-files    Ignores directories passed to the program as files. Useful for shell globbing
    -i, --interactive             Ask for confirmation before overwrite. The program will otherwise exit unless --force
                                is passed
    -V, --version                 Prints version information
    -v, --verbose                 Print operations as they are being performed

OPTIONS:
    -e, --regexp <patterns>...
            Additional patterns. These can be supplied multiple times. Patterns are executed in the order they are
            passed, starting with the mandatory pattern
        --prefix-increment <prefix-increment>
            Prefix files with an increasing counter in the specified format. E.g. 0501 => 0501filename, 0502filename

        --suffix-increment <suffix-increment>
            See --prefix-increment. Will try to insert suffix before the file extension


ARGS:
    <pattern>     Regex pattern to match and the string to replace it with. (REGEX=REPLACEMENT)
    <files>...    Files to rename

示例

添加前缀或文件扩展名。

# Add a prefix
$ renamer '^=2020-07-18 ' img*

# Add an extension
$ renamer '$=.bak' file1 file2

# Change extension
$ renamer 'JPEG$=jpg' *.JPEG

# Multiple patterns. Change extension and remove a prefix.
$ renamer 'JPEG$=jpg' -e '^some_prefix_=' *

重新排列文件的一部分。以下描述了使用捕获组(包括命名组)的各种方式。

$ renamer --verbose '(?P<index>\d{2}\.) (.*)\.(?P<ext>)=${index} Lady Gaga - $2.$ext' *.mp3

"01. Chromatica I.mp3" -> "01. Lady Gaga - Chromatica I.mp3"
"02. Alice.mp3" -> "02. Lady Gaga - Alice.mp3"
"03. Stupid Love.mp3" -> "03. Lady Gaga - Stupid Love.mp3"
"04. Rain On Me.mp3" -> "04. Lady Gaga - Rain On Me.mp3"
"05. Free Woman.mp3" -> "05. Lady Gaga - Free Woman.mp3"
"06. Fun Tonight.mp3" -> "06. Lady Gaga - Fun Tonight.mp3"
"07. Chromatica II.mp3" -> "07. Lady Gaga - Chromatica II.mp3"
"08. 911.mp3" -> "08. Lady Gaga - 911.mp3"
"09. Plastic Doll.mp3" -> "09. Lady Gaga - Plastic Doll.mp3"
"10. Sour Candy.mp3" -> "10. Lady Gaga - Sour Candy.mp3"
"11. Enigma.mp3" -> "11. Lady Gaga - Enigma.mp3"
"12. Replay.mp3" -> "12. Lady Gaga - Replay.mp3"
"13. Chromatica III.mp3" -> "13. Lady Gaga - Chromatica III.mp3"
"14. Sine From Above.mp3" -> "14. Lady Gaga - Sine From Above.mp3"
"15. 1000 Doves.mp3" -> "15. Lady Gaga - 1000 Doves.mp3"

添加数字以轻松排序文件。如果您要将目录结构扁平化但仍然希望文件排序良好,则非常有用。

$ renamer -v '^=_' --prefix-increment 0201 Westworld01.mkv Westworld.S02E02.mkv Westworld_3.mkv

"Westworld01.mkv" -> "0201_Westworld01.mkv"
"Westworld.S02E02.mkv" -> "0202_Westworld.S02E02.mkv"
"Westworld_3.mkv" -> "0203_Westworld_3.mkv"

还可以使用 --prefix-suffix 添加后缀。

致谢

极大地受到原始 rename.pl 的启发。目标是拥有类似的功能,但具有更快的执行时间和稍微更直观的语法,这对于不太熟悉正则表达式的人来说。

依赖关系

~6MB
~104K SLoC