我有一些文件的名称如下:
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”。