Sir*_*Vic 2 awk text-processing
我有这个数据:
300>BRIAN
100>DANY
200>NICOLE
105>DANY
Run Code Online (Sandbox Code Playgroud)
我想生成以下内容:
300>BRIAN
205>DANY
200>NICOLE
Run Code Online (Sandbox Code Playgroud)
分隔符是>
,第一列应该是 SUM。
强制性GNU Datamash解决方案
datamash -st '>' groupby 2 sum 1 < data | datamash -t '>' reverse
300>BRIAN
205>DANY
200>NICOLE
Run Code Online (Sandbox Code Playgroud)
使用 awk:
awk -F\> '{pivot[$2]+=$1} END{for (x in pivot) print pivot[x]">"x}' infile.txt
Run Code Online (Sandbox Code Playgroud)
输出是:
300>BRIAN
205>DANY
200>NICOLE
Run Code Online (Sandbox Code Playgroud)
对于column2中的每个uniqe字段求和其相对第一列值,然后在最后循环枢轴数组并首先打印总和,然后打印相应的字符串。