首页 > 解决方案 > 更改 bash 中较大子集的文件名(mac 终端)

问题描述

我有大量 .tif 文件以下列方式标记:

xxxx_01.tif;xxxx_02.tif;.... xxxx_95.tif

如何在增加标签的同时批量更改文件的名称(即文件 01-16 更改为 condition_1;文件 17-20 更改为 condition_2)?

我一直在执行以下命令来重命名它们,但我不确定如何选择某个范围:

a=1; 
for i in *.tif; 
do new=$(printf "%02d.tif" "$a"); 
mv -- "$i" "filename_$new"; 
let a=a+1; 
done

干杯

标签: bashterminal

解决方案


您可以生成您感兴趣的文件名,而不是对文件夹中的所有文件进行通配:

for n in $(seq -w 1 16)
do
    original_tif="xxxx_${n}.tif"
    new_tif="condition_1_${n}.tif"
    mv "${original_tif}" "${new_tif}"
done

推荐阅读