在linux中大量重命名文件

时间:2017-11-13 14:08:36

标签: linux terminal

我有linux格式的文件:

img_1234563_@_12345.XX-FFF-123334-35370-122232-12342.gif
img_1234fdfd3_fd12345.XX-FdFF-1233343-35370-145232-d12342.gif

我想重命名为

img_1234fdfd3_fd12345.jpg

所以在第一个点之后切断所有并将jpg放在最后

我试图用img _ / \ S [//^. ]+等模式进行重命名 但没有太大的成功:(

1 个答案:

答案 0 :(得分:0)

您可以使用String拆分来划分文件名。拥有变量s时,您可以使用${MYVAR/%pattern}从头开始保留模式的最短匹配。

我不知道您是否正在处理目录中的所有条目,因此我假设您有一个变量files,其中包含您需要重命名的所有文件名。否则,您只需要更改循环绑定以适合您的文件列表。

#!/bin/bash

files="img_1234563_@_12345.XX-FFF-123334-35370-122232-12342.gif img_1234fdfd3_fd12345.XX-FdFF-1233343-35370-145232-d12342.gif"

for file in $files; do
        name="${file/%.*}"
        fullName="${name}.jpg"                                                                                                                                                                                                                                             
        mv "$file" "$fullName"
done 
相关问题