标题: 使用gawk统计第一列不重复的个数 [打印本页]
作者: shootman2 时间: 2018-8-8 18:04 标题: 使用gawk统计第一列不重复的个数
本帖最后由 CrLf 于 2018-8-8 20:49 编辑
数据文件123.txt内容如下:
fieldA fieldB
1, aaa
1, bbb
2, ccc
2, ddd
2, eee
3, fff
3, ggg
3, hhh
3, iii
使用如下语句,统计$1列不重复的值,统计出来总是4,正确应该是3。这是为什么呢?
gawk "BEGIN{NR>1;FS=OFS=\",\"} {^!cn[$1]++;} END{print cn[$1];}" 123.txt
作者: CrLf 时间: 2018-8-8 20:51
因为你统计的是第一列为3的次数(END行$1取值为3),改成这样试试:- gawk "BEGIN{NR>1;FS=OFS=\",\"} !cn[$1]++{n++;} END{print n;}" 123.txt
复制代码
以及,首页出bug了,所以我把你标题改了...
作者: shootman2 时间: 2018-8-8 23:23
回复 2# CrLf
不行啊,大神!执行后还是4啊!
作者: CrLf 时间: 2018-8-8 23:35
n-1 就好,因为还有个标题行呢
作者: shootman2 时间: 2018-8-9 13:22
回复 4# CrLf
不是在初始化的时候,NR>1 吗?难道没生效?
作者: CrLf 时间: 2018-8-9 19:03
放在 {} 里面就不是条件啦- gawk "BEGIN{FS=OFS=\",\"} $1 && NR>1 && !cn[$1]++{n++;} END{print n;}" 123.txt
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |