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

mbzjlibv  于 2023-06-21  发布在  Linux
关注(0)|答案(1)|浏览(128)

我有三个文件名为

file1.txt
file2.txt
file3.txt

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

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

如何使用正则表达式来实现这一点?

7rfyedvj

7rfyedvj1#

像这样:

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

或来自评论:

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

当输出看起来很好时,删除-n开关,以真实的重命名。


还有其他同名的工具可能无法执行此操作,因此请小心。
作为util-linux包一部分的rename命令不会。
如果运行以下命令(GNU

$ rename

看到perlexpr,那么这似乎是正确的工具。
如果没有,则将其作为Debian和衍生产品(如Ubuntu)的默认值(通常已经是这种情况):

$ sudo apt install rename
$ sudo update-alternatives --set rename /usr/bin/file-rename

对于archlinux:

pacman -S perl-rename

对于RedHat家族发行版:

yum install prename

'prename'包位于EPEL存储库中。
对于Gentoo:

emerge dev-perl/rename

对于 *BSD:

pkg install p5-File-Rename

对于Mac用户:

brew install rename

如果在其他发行版中没有此命令,请搜索软件包管理器以安装它或do it manually
或者你可以使用perl CPAN:

cpan -i File::Rename

旧的独立版本可以找到here
man rename
这个工具最初是由Perl之父Larry Wall编写的。

相关问题