循环文件名,通过条件重命名它们

Loop over filenames, rename them via a condition

如何遍历单独的文件名并重命名它们? "task/condition" 是: 剪掉前5个字母和后4个字母?

例如我有这些文件:

1212erertugg.jpg
14rtzuzuiopo.jpg
tz7878nhmnop.jpg
etc...

结果应如下所示:

rertugg
uzuiopo
8nhmnop

使用参数扩展提取子串:

#!/bin/bash
for file in 1212erertugg.jpg 14rtzuzuiopo.jpg tz7878nhmnop.jpg ; do
    substr=${file:5}
    substr=${substr:0:-4}
    mv "$file" "$substr"
done

您可能需要检查您是否没有覆盖已经存在的文件,无论是原始文件还是由脚本本身在前面的步骤之一中创建的文件。