在shell/awk中使用数千个分隔符格式化数字

在shell/awk中使用数千个分隔符格式化数字,awk,sh,Awk,Sh,我得到的输出如下所示 17,123456,1 16,1234,2 0211,34567,2 21,2345,2 我需要格式化输出,如下所示,用 Code 17 123456 Code 16 1234 Code 0211 34567 Code 21 2345 17 Record Count 1 16 Record Count 2 0211 Record Count 2 21 Record Count 2 有人能帮我一下吗。如果需要数千个分隔符,您需要使用%'

我得到的输出如下所示

17,123456,1
16,1234,2
0211,34567,2
21,2345,2
我需要格式化输出,如下所示,用

Code   17  123456
Code   16  1234
Code 0211  34567
Code   21  2345
17 Record Count   1
16 Record Count   2
0211  Record Count  2
21 Record Count   2

有人能帮我一下吗。

如果需要数千个分隔符,您需要使用
%'d
而不是
%s
作为格式说明符。由于您要在命令行上传递awk脚本,因此获取正确的引号可能很棘手。有了帽子尖,这里有一种方法:

Code   16  1,234
Code 0211  34,567
Code   21  112,345
17 Record Count   1
16 Record Count   2
0211  Record Count  2
21 Record Count   2

如果需要数千个分隔符,则需要使用
%'d
而不是
%s
作为格式说明符。由于您要在命令行上传递awk脚本,因此获取正确的引号可能很棘手。有了帽子尖,这里有一种方法:

Code   16  1,234
Code 0211  34,567
Code   21  112,345
17 Record Count   1
16 Record Count   2
0211  Record Count  2
21 Record Count   2

示例输入与输出不匹配。请解决这个问题不,你不能从输入中得到输出。来吧-请稍微努力形成这个问题…我以前从未见过数千人像
112345
那样分裂…看起来有点像?同意JD.,我的错误。。它应仅采用美式格式112345。您的示例输入与输出不匹配。请解决这个问题不,你不能从输入中得到输出。来吧-请稍微努力形成这个问题…我以前从未见过数千人像
112345
那样分裂…看起来有点像?同意JD.,我的错误。。它应该仅采用美式格式112345。为简化引用,请始终使用
\047
'
分隔的awk脚本中获取
'
。还请注意,这仅适用于某些地区,例如,它将适用于
LC_ALL=en_US.UTF-8
,但不适用于
LC_ALL=C
。您好,我使用了“f”而不是“d”。。。我正在寻找输出123456.12。。在半校准2精度之后。。。我用过2f,但它不支持..你能帮我吗。。再帮我一个忙。。我正在尝试在处理之前对数据进行排序。。我给出了这样的排序-t“,“-k1,1 totalsum.txt。。但不起作用,。。你能纠正我吗?你应该为此发布一个新问题。为了简单引用,请始终使用
\047
'
分隔的awk脚本中获取
'
。还请注意,这仅适用于某些地区,例如,它将适用于
LC_ALL=en_US.UTF-8
,但不适用于
LC_ALL=C
。您好,我使用了“f”而不是“d”。。。我正在寻找输出123456.12。。在半校准2精度之后。。。我用过2f,但它不支持..你能帮我吗。。再帮我一个忙。。我正在尝试在处理之前对数据进行排序。。我给出了这样的排序-t“,“-k1,1 totalsum.txt。。但不起作用,。。你能纠正我吗?你应该为此贴一个新问题。
#!/bin/sh
awk -F, '
{ 
   printf("    Code %s  %\047d\n",$1,$2)
   r[NR] = $1
   c[NR] = $3
}

END { for(i = 1; i <= NR; i++) printf("  %s Record Count   %s\n", r[i],c[i])

}' totalsum.txt
$ ./test.sh
    Code 37  123,456
    Code 27  1,234
    Code 0367  34,567
    Code 41  2,345
  37 Record Count   1
  27 Record Count   2
  0367 Record Count   2
  41 Record Count   2