perl -pi -e's/(-----------step\s+)(\d+)\./$h{$2}||=$2;$h{$2}+=.1;$1.$h{$2}/ge' foo.txt; cat foo.txt -----------step 1.1 -----------step 1.2 -----------step 1.3 -----------step 2.1 -----------step 1.4 -----------step 1.5 -----------step 1.6 -----------step 2.2 -----------step 2.3 -----------step 2.4 -----------step 3.1 -----------step 3.2 -----------step 2.5 -----------step 2.6 -----------step 3.3 -----------step 3.4