加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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"

任何帮助是极大的赞赏.

谢谢
Dhruuv.

解决方法

使用GNU awk版本4或更高版本,您可以使用FPAT来定义模式.

gawk '{print $1,$2,$3}' FPAT="([^,]+)|("[^"]+")" OFS="," 44.csv

测试:

$gawk '{print $1," mycsv.csv
column1,"simple string"

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读