Seu problema não tem nada a ver com gawk
como você escreveu em sua resposta. O script awk
da sua pergunta está simplesmente errado e não funciona:
Compare seu
cat sample.csv|awk -F',''{for (i=0;i<2,i++){gsub(/Text[0-9]/,"Text"+i); print $0}}'
e uma versão de trabalho
cat sample.csv|awk -F',' '{for (i=0;i<2;i++){gsub(/Text[0-9]/,"Text"$1+i); print $0}}'
E eu usaria isso
awk -F, '{for (i=0;i<2;i++){gsub(/Text[0-9]/,"Text"$1+i); print $0}}' sample.csv
Saída
001,Text1,Val1
001,Text2,Val1
002,Text2,Val2
002,Text3,Val2
003,Text3,Val3
003,Text4,Val3