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
Run Code Online (Sandbox Code Playgroud)
这是我的输入文件
17,123456,1
16,1234,2
0211,34567,2
21,2345,2
Run Code Online (Sandbox Code Playgroud)
我得到如下的输出.,
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
Run Code Online (Sandbox Code Playgroud)
我需要格式化输出,如.,下面表示值,
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
Run Code Online (Sandbox Code Playgroud)
有人可以帮助我.
如果需要数千个分隔符,则需要使用%'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
Run Code Online (Sandbox Code Playgroud)
输出:
$ ./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
Run Code Online (Sandbox Code Playgroud)