小编Arg*_*101的帖子

sh 按匹配的列名值拆分 CSV 文件,同时保留标题

我有一个包含许多来自表导出的 CSV 文件的目录

tblA.csv

A,B,C
1,1,1
1,2,2
2,2,2
3,3,3
Run Code Online (Sandbox Code Playgroud)

tblB.csv

C,D,A
1,1,1
1,2,2
2,2,2
3,3,3
Run Code Online (Sandbox Code Playgroud)

为了打破文件,我找到了这个脚本

   awk -F, '
      NR== 1 { hdr = $0;next}
      {out = "File" $1 ".csv"}
      printed[$1]++<1 {print hdr >out}
      {print $0 > out}
  ' tblA.csv 
Run Code Online (Sandbox Code Playgroud)

创建 3 个文件

A,B,C
1,1,1
1,2,2
Run Code Online (Sandbox Code Playgroud)
A,B,C
2,2,2
Run Code Online (Sandbox Code Playgroud)
A,B,C
3,3,3
Run Code Online (Sandbox Code Playgroud)

现在对于 tblB.csv 我仍然需要按列 A 打破文件,但该列是第 3 列而不是第 1 列

我想不出一种方法来传递参数 A 让它循环标题以找到与我传递的参数匹配的列名,然后使用该列值破坏文件。或者,如果该列名不存在,则跳过该文件。

awk

1
推荐指数
1
解决办法
75
查看次数

标签 统计

awk ×1