for f in TS_01_001_21.0.tif TS_10_005_-21.0.tif TS_21_010_-45.0.tif
do
newf="${f//[0-9][0-9][0-9]_/}"
newf="${newf/.tif/}"
if [[ -f "${newf}" ]]
then
# addressing comment/question re: what happens if two source files are modified to generate the same new file name
echo "WARNING: ${newf} already exists. [ source: ${f} ]"
else
echo mv "${f}" "${newf}"
fi
done
1条答案
按热度按时间bvpmtnay1#
假设条件:
middle
始终表示3 digits
加上下划线(_
)3 digits
加上下划线(_
)只出现一次(也称为middle
).tif
一个想法是使用一对参数替换来删除不需要的字符:
这会产生:
一旦对结果满意,OP可以删除
echo
,以便执行实际的文件重命名。