我有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 [//^. ]+等模式进行重命名 但没有太大的成功:(
答案 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