ls | grep _[0-9] | grep _[0-9].r > tmp$$ while read file do newname=`echo $file | sed 's/\([0-9]\)/0\1/'` mv $file $newname done < tmp$$ ls | grep _[0-9] > tmp$$ biggest=0 while read file do num=`echo $file | awk -F_ '{print $2}' | awk -F. '{print $1}'` if [ $num -gt $biggest ] then biggest=$num fi done < tmp$$ NEWFILENAME=text_`expr $biggest + 1`.rtf"