使用模式批量重命名文件

使用模式批量重命名文件

我有一些文件的名称如下:

63018933.mp4?令牌=1325697436_b0c3e70c6e339380b4a484c576a8c287

63808488.mp4?令牌=1325697401_4ae5f7a68d93873c8881b303e7655e14

如何将它们全部重命名为,例如 63018933.mp4(删除 mp4 之后的字符)?

答案1

如果您有该rename(1)工具(如果您有 Debian 或基于 Debian 的 Linux,包括 Ubuntu 及其衍生版本,则可以使用该工具):

rename -n 's/\.mp4.*$/.mp4/' *mp4*

一旦您确信自己拥有正确的模式,只需删除-n(空运行)并让它正常运行即可。

rename(1)会将 Perl 正则表达式应用于给定的文件名。

请注意,在大多数其他 Linux 发行版上,rename有一个不同的文件重命名程序,这对这种特定的重命名模式没有帮助。

答案2

这可能是一种方式:

for file in *.mp4\?token*; do mv --no-clobber "$file" "${file%%\?*}"; done

答案3

还有mmv:

mmv -n "*.mp4*" "#1.mp4"

当输出看起来正确时删除“-n”。

相关内容