Bash按范围分割CSV

Bash按范围分割CSV,bash,shell,csv,sh,Bash,Shell,Csv,Sh,我有以下CSV文件 "Costa Rica","Aberdeen Research",10152 "Costa Rica","Applebees Lab",14562 "Costa Rica","Bride Research",10452 "Costa Rica","Complex Teams",4512 "Costa Rica","Dynamic Air",7854 "Costa Rica","Electronict Arts",7851 我需要根据BASH脚本中第二列的第一个字符将CSV拆

我有以下CSV文件

"Costa Rica","Aberdeen Research",10152
"Costa Rica","Applebees Lab",14562
"Costa Rica","Bride Research",10452
"Costa Rica","Complex Teams",4512
"Costa Rica","Dynamic Air",7854
"Costa Rica","Electronict Arts",7851
我需要根据BASH脚本中第二列的第一个字符将CSV拆分为N个新文件

例如,脚本:

$:./split.sh-从A文件到C文件.csv

预期结果必须是:

"Costa Rica","Aberdeen Research",10152
"Costa Rica","Applebees Lab",14562
"Costa Rica","Bride Research",10452
"Costa Rica","Complex Teams",4512
以此类推,如果我在参数中传递不同的First字母


谢谢

使用awk您可以非常简单地完成类似的任务

awk -F "," '$2 ~ /^\"[A-C]/' < file.csv
请注意,这是区分大小写的,因此与
“哥斯达黎加”、“鸟类保护区”、4321等列不匹配。要执行此操作,请将命令更改为:

awk -F "," '$2 ~ /^\"[a-cA-C]/' < file.csv
awk-F“,“$2~/^\”[a-cA-C]/”

将此适应于BASH脚本应该足够简单,考虑在AWK、GETOPT和正则表达式匹配上读一点。

可以用AWK简单地完成这类事情。

awk -F "," '$2 ~ /^\"[A-C]/' < file.csv
请注意,这是区分大小写的,因此不匹配列,如
“哥斯达黎加”、“鸟类保护区”,4321
。要执行此操作,请将命令更改为:

awk -F "," '$2 ~ /^\"[a-cA-C]/' < file.csv
awk-F“,“$2~/^\”[a-cA-C]/”

将此适应于BASH脚本应该足够简单,考虑在AWK、GETOPT和正则表达式匹配上读一点。

这样,不仅可以过滤,而且还可以给出一个范围。很高兴看到你的尝试。另外,其余的行会发生什么?所以不仅要过滤,还要给出一个范围。很高兴看到你的尝试。还有,剩下的台词呢?“天才!非常感谢,天才!谢谢