You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用awk统计文件第一列的非空记录总数?

awk实现文件第一列非空记录数统计

完全可以使用awk完成该统计需求,对应你的测试场景,预期统计第一列非空的行总数为4。

原命令错误原因

你之前使用的命令核心判断逻辑有误:NF==$1是拿「当前行按分隔符拆分后的字段总个数」和「第一列的文本内容」做相等判断,NF是数值,$1是字符串,二者不存在符合你需求的匹配关系,自然无法得到正确结果。

正确实现命令

awk -F'|' '$1 != "" {c++} END{print c}' file

逻辑说明

  • -F'|':指定字段分隔符为竖线|
  • 逐行处理时,只要第一列$1不是空字符串,就给计数器c加1
  • 所有行遍历完成后,在END块输出计数器c的最终值

等价写法

也可以通过判断第一列长度实现相同效果,awk中长度大于0的判断条件会自动被识别为真:

awk -F'|' 'length($1) {c++} END{print c}' file

结果验证

对应你提供的测试文件,逐行判断计数过程如下:

  • abc|87123:第一列为abc非空,计数+1
  • cdb|:第一列为cdb非空,计数+1
  • fgytw|23321:第一列为fgytw非空,计数+1
  • ghft|:第一列为ghft非空,计数+1
  • |87635:第一列为空,不计数
    最终输出结果为4,完全符合预期。

内容的提问来源于stack exchange,提问作者Nadia Alice

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 07:57:20