在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