awk -F, '
{
printf(" Code %s %s\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
这是我的输入文件
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
我需要将输出格式化为。,下面用<,p>表示值
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
请有人帮助我。
答案 0 :(得分:5)
如果需要数千个分隔符,则需要使用%'d
而不是%s
作为格式说明符。由于您在命令行上传递了awk脚本,因此正确获取引号可能会非常棘手。使用帽子提示Ed Morton,这是一种方法:
#!/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