在shell脚本中遍历文件并为文件中的每个数字应用1000运算符

在shell脚本中遍历文件并为文件中的每个数字应用1000运算符,shell,Shell,我有一个包含以下内容的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,96

我有一个包含以下内容的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

最短的方法是什么?我需要最少一行代码。

您可以使用此
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

我们需要你们至少展示一下解决这个问题的最小努力。我现在正在做的是遍历一个文件,并使用正则表达式检查整数。[$efgh=~^-?[0-9]+$]]。如果它是整数,则使用千位分隔符printf“%”.3f\n“$efgh。关键是我必须以一种有效的方式来做这件事。braod的目标是用千位分隔符打印包含所有数字的报告。
awk 'BEGIN{printf "%\x27" ".3f\n", 12345678.901}'
12,345,678.901