从 CSV 文件中删除数组列

从 CSV 文件中删除数组列

我有一个 CSV 文件,in.csv其中有一个整数数组列:

1,2,4,"{100,200,300}",,1
1,2,4,"{100,200,300,400,500}",,2
1,2,4,"{100,200,300,600.900,1200,1500}",1,3

我想要一个输出文件,out.csv例如:

1,2,4,,1
1,2,4,,2
1,2,4,1,3

我试过:

cut -d , -f4 -- complement in.csv > out.csv

但它没有成功。 (我还有第五列,它对第三行有价值,但对其他行没有价值)。

答案1

使用csvkit

$ csvcut -C 4 in.csv
1,2,4,,1
1,2,4,,2
1,2,4,1,3

-C标志指定要删除哪些列。

答案2

这将完成工作

awk -F'[,]' '{print $1","$2","$3","$(NF-1)","$NF}' in.csv
  • -F'[,]' 这用于将分隔符设置为“,”
  • $NF 给你最后一个项目

答案3

sed您一起可以简单地执行以下操作:

sed 's/,"{.*}"//' in.csv > out.csv

结果:

cat out.csv 
1,2,4,,1
1,2,4,,2
1,2,4,1,3

相关内容