Solução simples baseada em delimitador de vírgula - sempre 4 vars:
gv@debian:$ a="CONST1( var1, var2, var3, var4 );";echo $a |awk -F',' '{print $1","$2","$3"," " substring" ","$4}'
CONST1( var1, var2, var3, substring, var4 );
Com variável:
gv@debian:$ a="CONST1( var1, var2, var3, var4 );";b="somestring";echo $a |awk -v x=$b -F',' '{print $1","$2","$3", "x","$4}'
CONST1( var1, var2, var3, somestring, var4 );