使用正则表达式重命名文件 - Linux

时间:2018-03-14 00:17:03

标签: regex linux rename

我有三个名为

的文件
file1.txt
file2.txt
file3.txt

我正在尝试将它们重命名为

mynewfile-1.txt
mynewfile-2.txt
mynewfile-3.txt

我如何使用正则表达式来解决这个问题?

1 个答案:

答案 0 :(得分:0)

试试这个:

rename -n 's/^file/mynewfile-/' *.txt

或来自评论:

rename -n 's/^file(\d+)/mynewfile-${1}-test/' *.txt
                   ___            ____
                    ^               ^
              capturing group       |
                               captured group

(当你的测试没问题时删除-n开关)

warning 还有其他同名工具可能会或可能不会这样做,所以要小心。

如果您运行以下命令(GNU

$ file "$(readlink -f "$(type -p rename)")"

你有一个像

的结果
.../rename: Perl script, ASCII text executable

且不包含:

ELF

然后这似乎是正确的工具=)

如果没有,请将其设为Debian上的默认值(通常已经是这种情况)和Ubuntu之类的衍生物:

$ sudo update-alternatives --set rename /path/to/rename

(将/path/to/rename替换为perl's rename命令的路径。

如果您没有此命令,请搜索您的软件包管理器进行安装或do it manually(无代表)

最后但并非最不重要的是,这个工具最初是由Perl的父亲Larry Wall编写的。