【发布时间】:2014-09-05 04:12:00
【问题描述】:
希望根据第 2 列、行项目数、第 3 列总和和第一列的唯一值进行打印。大约有 100 个 InputTest 文件且未排序.. 我正在使用以下 3 个命令来实现所需的输出,想知道最简单的方法...
输入测试*.txt
abc,xx,5,sss
abc,yy,10,sss
def,xx,15,sss
def,yy,20,sss
abc,xx,5,sss
abc,yy,10,sss
def,xx,15,sss
def,yy,20,sss
ghi,zz,10,sss
步骤#1:
cat InputTest*.txt | awk -F, '{key=$2;++a[key];b[key]=b[key]+$3} END {for(i in a) print i","a[i]","b[i]}'
操作#1
xx,4,40
yy,4,60
zz,1,10
步骤#2
awk -F ',' '{print $1,$2}' InputTest*.txt | sort | uniq >Op_UniqTest2.txt
操作#2
abc xx
abc yy
def xx
def yy
ghi zz
步骤#3
awk '{print $2}' Op_UniqTest2.txt | sort | uniq -c
操作#3
2 xx
2 yy
1 zz
期望的输出:
xx,4,40,2
yy,4,60,2
zz,1,10,1
寻求建议!!!
【问题讨论】:
标签: awk