let split
printf fmt, "stab_site" user[i]
"stab_site" user[i]
сделает stab_sitenakr
, так как после site нет пробелаprintf fmt, "stab_site" user[i]
получаетсяprint "%-4s\n" , stab_sitenakr
который печатает выровненный по левому краю stab_sitenakr
возможно вы ищете
printf fmt, "stab_site " user[i]
или (по просьбе OP)
printf " %s %s\n", "stab_site", user[i]
Perl-витрина:
perl -pe "1 while s/'.*\K,(?=.*')/ /" input.txt
Выход:
Insert into PE_ATRT_S(ID_ANA_TX,FQ_WQ_ASDF,ID_PRTY,NM_ATHY_TX,SC_RND,QU_DGT_RND) values (99990987868959,null,68,'T59 - % Dsc Itm-2 tax 1 Juris',4,5);
Масштабированный вывод:
(99990987868959,null,68,'T59 - % Dsc Itm-2 tax 1 Juris',4,5);
Альтернативное решение сgnu sed
:
sed -r 's/(\x27.*),(.*\x27)/\1 \2/g' file
\x27
:ascii-код одинарной кавычки'
perl -pe "s/.*'\K(.*?)(?=')/\$1 =~ y|,| |r/e"