我的Linux系统中有100个目录,从data001到data100,我希望我的bash脚本根据目录名称重命名所有具有不同扩展名的数据文件.例如,data001目录下的文件应重命名为*001.txt和*001.nc,data002目录下的文件应重命名为*002.txt和*002.nc,依此类推.我有执行该工作的bash脚本,但当我try 重新运行该脚本时,它重复了该名称,例如,data001-*001001.txt*001_001.nc.我想确保如果我重新运行脚本,代码不会影响命名格式.
#!/bin/bash
for ((ii=1; ii<=100; ii++))
do
dirname=$(printf "data%03d" $ii)
for file in $dirname/*
do
filename=$(basename "$file")
extension="${filename##*.}"
filename_without_ext="${filename%.*}"
newname=$(printf "%s_%03d.%s" "$filename_without_ext" $ii "$extension")
# Skip if the file is already in the desired format
if [[ "$filename_without_ext" != *"_${ii}" ]]; then
mv "$file" "$dirname/$newname"
fi
done
done