如何使用Shell脚本放置透视表

如何使用Shell脚本放置透视表,shell,csv,pivot-table,Shell,Csv,Pivot Table,我有一个CSV文件中的数据如下 Emailid Storeid a@gmail.com 2000 b@gmail.com 2001 c@gmail.com 2000 d@gmail.com 2000 e@gmail.com 2001 我期待下面的输出,基本上找出每个商店有多少个电子邮件ID StoreID Emailcount 2000 3 2001 2 到目前为止,我试图解决我的问题 IFS="," while re

我有一个CSV文件中的数据如下

Emailid  Storeid      

a@gmail.com 2000

b@gmail.com 2001

c@gmail.com 2000

d@gmail.com 2000

e@gmail.com 2001
我期待下面的输出,基本上找出每个商店有多少个电子邮件ID

StoreID    Emailcount

2000           3

2001           2
到目前为止,我试图解决我的问题

IFS=","
while read f1 f2
do
awk -F, '{ A[$1]+=$2 } END { OFS=","; for (x in A) print x,A[x]; }' > /home/ec2-user/storewiseemials.csv
done < temp4.csv
IFS=“,”
读取f1和f2时
做
awk-F,'{A[$1]+=$2}END{OFS=“,”,对于(A中的x)打印x,A[x];}'>/home/ec2 user/storewiseemials.csv
完成
对于上面的shell脚本,我没有得到想要的输出,你们能帮助我吗?

使用miller()并从这开始(我使用了CSV,因为我不知道是否使用选项卡或空白作为分隔符)

跑步

mlr --csv count-distinct -f Storeid -o Emailcount input >output
你会有

+---------+------------+
| Storeid | Emailcount |
+---------+------------+
| 2000    | 3          |
| 2001    | 2          |
+---------+------------+

请发布完整的脚本(例如,
done
缺失),并解释
f1
f2
应该包含哪些内容;您设置了这些变量,但从未使用过它们。此外,您的
awk
命令读取标准输入,但您没有输入重定向。更新的完整脚本如果您说输出不是您想要的,但您没有显示实际输出。@user1934428,awk将取消while read循环的输入重定向。循环将只迭代一次:
f1
将包含文件的第一行(因为文件中没有逗号),然后
awk
将消耗文件的其余部分。@SG131712,您的CSV看起来没有逗号,所以请删除
IFS
-F,
部分。
+---------+------------+
| Storeid | Emailcount |
+---------+------------+
| 2000    | 3          |
| 2001    | 2          |
+---------+------------+