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