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

如何输出CSV文件中字段数量不正确的行号,附awk实现示例

需求说明

我有一个CSV文件,第一行是表头,字段数量为正确标准值,需要输出所有字段数量不符合该标准的行的编号。

原有代码问题

你编写的原有代码存在两处冗余逻辑,会输出多余内容:

  • 开头的{c;是无意义的空语句,没有实际作用
  • 多余的print c语句会把标准字段数重复输出,混杂在结果中干扰判断
修正后可用代码

如果你的CSV是制表符分隔的,可直接使用以下代码:

awk 'BEGIN { RS="\n"; FS="\t" } NR==1 { standard=NF } NR>1 && NF!=standard { print NR }' ./cities.csv

如果是普通逗号分隔的CSV,修改字段分隔符参数即可:

awk 'BEGIN { RS="\n"; FS="," } NR==1 { standard=NF } NR>1 && NF!=standard { print NR }' ./cities.csv
逻辑说明
  • BEGIN块提前指定行分隔符为换行符,字段分隔符根据你的CSV实际分隔规则设置
  • 读取第一行(行号NR=1)时,将该行的字段数NF赋值给standard作为校验的标准值
  • 从第二行开始逐行校验,只要当前行的字段数不等于标准值,就直接输出该行的行号

内容的提问来源于stack exchange,提问作者ktoś tam

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 03:24:04