找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 10198|回复: 5

使用gawk统计第一列不重复的个数

[复制链接]
发表于 2018-8-8 18:04:23 | 显示全部楼层 |阅读模式
本帖最后由 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
发表于 2018-8-8 20:51:45 | 显示全部楼层
因为你统计的是第一列为3的次数(END行$1取值为3),改成这样试试:
  1. gawk "BEGIN{NR>1;FS=OFS=","} !cn[$1]++{n++;} END{print n;}" 123.txt
复制代码
以及,首页出bug了,所以我把你标题改了...
 楼主| 发表于 2018-8-8 23:23:17 | 显示全部楼层
回复 2# CrLf


    不行啊,大神!执行后还是4啊!
发表于 2018-8-8 23:35:01 | 显示全部楼层
n-1 就好,因为还有个标题行呢
 楼主| 发表于 2018-8-9 13:22:11 | 显示全部楼层
回复 4# CrLf


    不是在初始化的时候,NR>1 吗?难道没生效?
发表于 2018-8-9 19:03:05 | 显示全部楼层
放在 {} 里面就不是条件啦
  1. gawk "BEGIN{FS=OFS=","} $1 && NR>1 && !cn[$1]++{n++;} END{print n;}" 123.txt
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 03:50 , Processed in 0.018018 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表