Предположим, что неправильный файл FILE_030.dat и у вас есть 300 файлов. Тогда вы можете сделать следующее
#!/bin/bash
mv FILE_030.dat some_directory/
for ((i=31; i<=300; i++))
do
filename=FILE_`printf "%03d" ${i}`.dat
if [ -e ${filename} ]
then
newi=$(( $i - 1 ))
newfilename=FILE_`printf "%03d" ${newi}`.dat
# This should not happen
if [ -e ${newfilename} ]
then
echo Error moving file ${filename} to ${newfilename}: ${newfilename} exists
exit
else
mv ${filename} ${newfilename}
fi
fi
done
Если ваши файлы имеют имена, такие как FILE_00030.dat, то есть с 5 цифрами, то вы должны изменить %03d
на 0%5d
в приведенном выше коде.
В целях безопасности проверка приведенного выше сценария прекращается, когда переименованный файл уже существует.