如何编写文件重命名函数的脚本来删除随机字符后缀

如何编写文件重命名函数的脚本来删除随机字符后缀

我有一堆文件名中添加了随机字符。我想批量重命名它们原始文件名减去添加的字符全部在同一目录中。

例子:

从: foobar.txt_fdnf Bubble.txt_terj apple.txt_fspd

到: foobar.txt Bubble.txt apple.txt

答案1

您可以使用rename带有正则表达式的命令来批量重命名。

在基于 debian 的发行版中,这个包称为“rename”;在基于 Arch 的发行版中,它被称为perl-rename.

(此正则表达式假设所有文件都遵循以下模式:.txt_randomtext)

rename -n 's/\.txt_.+/.txt/' *.txt*

-n选项允许您在应用更改之前检查更改。如果您确定这是重命名这些文件的方式,请删除-n选项并再次运行该命令。

答案2

zsh

autoload -Uz zmv
zmv -n '(*.txt)_[[:lower:]](#c4)' '$1'

-n如果满意,请删除以进行空运行)

将重命名名称.txt以 4 个小写字母结尾的文件(替换[[:lower:]]为以[a-z]限制为 26 个不带变音符号的英文字母)。

zmv在开始任何重命名之前将检查是否有重叠。

相关内容