Добавить запятые в числовые строки в Unix

Добавить запятые к номерам в Unix, необходимо изменить 1234567 как 1,234,567

Возможно ли это в sed или awk ? Если да, пожалуйста, дайте пример.

 $ LC_NUMERIC=en_US $ printf "%'.f" 1234567 1,234,567 

Предоставлено jim mcnamara : Locale определяет, что происходит с разделителем тысяч.

 $ export LC_NUMERIC="en_US.UTF-8" $ printf "%'f\n" 1234567.777 1,234,567.777000 $ export LC_NUMERIC=C $ printf "%'f\n" 1234567.777 1234567.777000 

У этого последнего нет запятых. У вашего результата не было запятых. Вы видите, почему сейчас? Locale LC_NUMERIC – ваш ответ. В локали C нет разделителя тысяч. Я предполагаю, что ваш язык тоже.

Ive использовал это один раз:

 echo "1234567890" | \ sed -e ': L s/\([0-9]\{1,19\}\)\([0-9]\{3\}\)/\1,\2/ t L' 

должно сработать

http://www.linuxquestions.org/questions/programming-9/format-numbers-using-bash-672031/#post4269148