Please point out my mistake.
Eu acho que você quer dizer isso:
printf "%'.3d\n" 123456
123,456
Lembre-se de que o separador depende do seu locale
.
LC_NUMERIC="en_US.UTF-8"
printf "%'.3d\n" 123456
123,456
LC_NUMERIC="sv_SE.UTF-8"
printf "%'.3d\n" 123456
123 456
Há uma boa descrição disponível aqui .