我的文件abc.txt包含以下内容
CLT_ARAMARK 44294902 21333309 22961593 189.691406 92468
CLT_C2C 11695574 4868496 6827078 279.808594 67159
CLT_CUTTYSARK 2057479 448250 1609229 26.021484 47054
我想要输出如下:
CLT_ARAMARK 44,294,902 21,333,309 22,961,593 189.691406 92,468
CLT_C2C 11,695,574 4,868,496 6,827,078 279.808594 67,159
CLT_CUTTYSARK 2,057,479 448,250 1,609,229 26.021484 47,054
最简单的方法是什么?我需要最少的代码行。
答案 0 :(得分:1)
您可以使用此awk
命令:
awk '{for (i=1; i<=NF; i++) if ($i ~ /^[0-9]+$/) $i=sprintf("%\x27" "d", $i)} 1' file
CLT_ARAMARK 44,294,902 21,333,309 22,961,593 189.691406 92,468
CLT_C2C 11,695,574 4,868,496 6,827,078 279.808594 67,159
CLT_CUTTYSARK 2,057,479 448,250 1,609,229 26.021484 47,054
这遵循这种格式化数字的方法:
awk 'BEGIN{printf "%\x27" ".3f\n", 12345678.901}'
12,345,678.901