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

基于分隔符数量拆分格式错误CSV文件的Unix命令求解

问题

我有一个格式错误的CSV文件,每行的逗号(分隔符)数量不一致。需要用Unix命令将源文件按每行的分隔符数量拆分为多个文件。

输入示例

$ cat ~/Desktop/sample_file.csv
1001,Pink,Panther,Seattle,WA,98001,favorite character
1002,Micky,Mouse,Bellevue,WA,98002
1003,Mini,Mouse,Bellevue,WA,98003
1004,Donald,Duck,Redmond,WA,98004,So funny
1005,Tom,Jerry,Lynwood,WA
1006,Woody,Woodpacker,Lynwood,WA

期望输出

拆分后得到3个文件,内容分别如下:

$ cat sample_file_6_delimiter.csv
1001,Pink,Panther,Seattle,WA,98001,favorite character
1004,Donald,Duck,Redmond,WA,98004,So funny
$ cat sample_file_5_delimiter.csv
1002,Micky,Mouse,Bellevue,WA,98002
1003,Mini,Mouse,Bellevue,WA,98003
$ cat sample_file_4_delimiter.csv
1005,Tom,Jerry,Lynwood,WA
1006,Woody,Woodpacker,Lynwood,WA

解决方案

用下面的awk命令就能实现需求:

awk -F, '{print > "sample_file_" (NF-1) "_delimiter.csv"}' ~/Desktop/sample_file.csv

命令解释

  • -F,:指定逗号作为字段分隔符
  • NF:awk的内置变量,代表当前行的字段总数,字段数减1就是该行的逗号数量(比如7个字段对应6个逗号)
  • print > "filename":将当前行写入对应名称的文件,文件名自动按sample_file_<逗号数>_delimiter.csv的格式生成

执行这条命令后,就会自动生成符合要求的三个文件,每行根据自身的逗号数量被归类到对应文件中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 04:05:22