Sum a column with awk and display number with printf using comma as thousands separator

Some examples of adding commas as thousands separators using awk and printf.

To add commas as thousands separator with printf:

$ echo 1000000000000 | xargs printf "%'d\n"


$ printf "%'d\n" 1000000000000

To add commas as thousands separator with awk:

$ echo 1000000000000 | awk '{ printf ("%'"'"'d\n", $1) }'

To sum the first column in this file:

$ cat test.txt 
1000000 foo
1000000 bar
1000000 baz

I could use this awk:

$ awk '{ sum+=$1 } END { print sum }' test.txt

To sum a column of numbers with awk and display the result with commas as thousands separator:

$ awk '{ sum+=$1 } END { printf ("%'"'"'d\n", sum) }' test.txt

Leave a comment

NOTE: Enclose quotes in <blockquote></blockquote>. Enclose code in <pre lang="LANG"></pre> (where LANG is one of these).