Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell 从文件名外壳脚本中删除guid_Shell_Rename_Batch Rename - Fatal编程技术网

Shell 从文件名外壳脚本中删除guid

Shell 从文件名外壳脚本中删除guid,shell,rename,batch-rename,Shell,Rename,Batch Rename,我在一个目录中有一堆需要重命名的文件。这些是由iPhone 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 这些文件需要重命名为相应的文件名。例如 201

我在一个目录中有一堆需要重命名的文件。这些是由iPhone 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
这些文件需要重命名为相应的文件名。例如

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不允许我对这些文件做任何操作,或者我可以使用类似的方法来完成这项工作


感谢您的帮助。

在bash中,您可以使用以下内容:

rename 's/(.*)\?.*/$1/' *
这解决了我的问题

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

我基本上对每个文件类型、MOV、PNG、mp4等都做了相同的操作。

不幸的是,我受到QNAP上使用内容的限制。我在bash的ipkg版本中没有重命名。还有其他想法吗?