从文件名shell脚本中删除guid

时间:2014-03-02 13:43:32

标签: shell rename batch-rename

我在目录中有一堆文件需要重命名。这些是由iPhone App for QNAP创建的,它将图像和电影文件从手机上传到NAS。

文件名是这样的:

2014-02-21 20.50.29.MOV?id=BFE616C6-F951-4A51-9B33-084B73BF9341&ext=MOV
2014-02-22 12.31.58.JPG?id=7D2816AA-06D4-4F48-8908-23D327BB0A01&ext=JPG

这些需要重命名为适当的文件名。 E.g。

2014-02-21 20.50.29.MOV?id=BFE616C6-F951-4A51-9B33-084B73BF9341&ext=MOV renamed to 2014-02-21 20.50.29.MOV

Windows不允许我对这些文件执行任何操作,或者我可以使用类似advancedrenamer的内容来完成这项工作。

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

在bash中你可以使用它:

rename 's/(.*)\?.*/$1/' *

答案 1 :(得分:0)

这解决了我的问题。

for file in *.JPG\?id*;
    do mv "$file" "${file%%\?*}";
done

我基本上对每种文件类型,MOV,PNG,mp4等都做了同样的事情。