发布网友 发布时间:2022-04-22 03:49
共1个回答
热心网友 时间:2024-08-14 18:19
!#/bin/awk -f
BEGIN{
print "下面是文件对列的统计";
}
{
for(i=1;i<=NF;i++)
++a[i][$i];
}
END{
for(i=1;i<=NF;i++)
{
printf("第%s列",i);
for(j in a[i]) printf("\t%s,%s次",j,a[i][j]);
print "";
}
print "输出完毕";
}
将这个文件保存成一个文本文件,我这里举例文件名叫script,你要改成什么都可以
然后在命令行里敲
gawk -F"," -f /path/to/script /path/to/your/txt/file
比如你的test.txt和script文件都放在同一个文件夹/home/ha,那这个命令就是
gawk -F"," -f /home/ha/script /home/ha/test.txt
或者你也可以单敲一行命令
gawk -F"," 'BEGIN{ print "开始输出对列的统计"; } { for(i=1;i<=NF;i++) ++a[i][$i]; } END { for(i=1;i<=NF;i++) { printf("第%s列",i); for(j in a[i]) printf("\t%s,%s次",j,a[i][j]); print ""; } print "输出完毕"; }' test.txt
都是一样的,test.txt是你要统计的文件
这下面你的文件产生的输出
开始输出对列的统计
第1列 1,5次 10,1次
第2列 2,4次 20,2次
第3列 3,5次 30,1次
第4列 4,6次
第5列 5,5次 50,1次
第6列 6,3次 60,3次
输出完毕
awk有很多很多版本,这个脚本用gawk是可以的,其他的awk不一定。