我有一些从在线数据库下载的 CSV 文件。我试图减少它们,以便我可以将我需要的部分数据插入到我的 SQL 数据库中。
CSV 文件具有逗号分隔的字段,如下所示:
1,Peptidoglycan synthetase ftsI,ftsI,1574687,L42023,P45059,FTSI_HAEIN,"",,,,
3,Histidine decarboxylase,HDC,32109,X54297,P19113,DCHS_HUMAN,,HDC,HDC,HGNC:4855,00817
5,"Glutaminase liver isoform, mitochondrial",GLS2,6650606,AF110330,Q9UI32,GLSL_HUMAN,,GLS2,GLS2,HGNC:29570,05901
6,Coagulation factor XIII A chain,F13A1,182309,M22001,P00488,F13A_HUMAN,1FIE,F13A1,F13A1,HGNC:3531,00604
7,"Nitric oxide synthase, inducible",NOS2,292242,L09210,P35228,NOS2_HUMAN,2NSI,NOS2A,NOS2A,HGNC:7873,01225
这就是问题所在。查看第 3 行和第 5 行。这两行的第二列有逗号!我通常使用 awk 来处理这样的事情,因为逗号在那里,所以 $2 被搞砸了。
例如:
awk -F ',' '{print $2}' myfile.csv ## Obviously I will be printing a lot more stuff
如果如上所示对该部分执行此操作,则第 3 行和第 5 行将被搞砸,因为这两行的第 2 列中有一个逗号,并用引号括起来。
我能做些什么来解决这个问题?
编辑:如果可能的话,我想仍然坚持在 shell 中这样做。