unix – 如何删除CSV文件的列/列,其中单元格值的字符串用双引号
发布时间:2020-12-15 21:07:03 所属栏目:安全 来源:网络整理
导读:如何从CSV文件中删除具有逗号分隔值的列,其中包含用双引号括起来的字符串以及介于两者之间的逗号?我有一个文件44.csv有4行包括标题,如下面的格式: column1,column2,column3,column 4,column5,column612,455,"string with quotes,and with a comma in betwe
如何从CSV文件中删除具有逗号分隔值的列,其中包含用双引号括起来的字符串以及介于两者之间的逗号?我有一个文件44.csv有4行包括标题,如下面的格式:
column1,column2,column3,column 4,column5,column6 12,455,"string with quotes,and with a comma in between",4432,6787,890,88 4432,"another,string with quotes,and with two comma in between",88,12,455 11,22,"simple string",77,777,333,22 我需要从文件中删除1,2,3列,所以我使用了如下的cut命令 cut -d"," -f1,3 44.csv > 444.csv 我得到的输出为 column1,column3 12,"string with quotes 4432,"another string with quotes 11,"simple string" 但我需要输出 column1,and with a comma in between" 4432,and with two comma in between" 11,"simple string" 任何帮助是极大的赞赏. 谢谢 解决方法
使用GNU awk版本4或更高版本,您可以使用FPAT来定义模式.
gawk '{print $1,$2,$3}' FPAT="([^,]+)|("[^"]+")" OFS="," 44.csv 测试: $gawk '{print $1," mycsv.csv column1,"simple string" (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |