我有一个包含许多来自表导出的 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