CSVファイルから配列列を削除する

CSVファイルから配列列を削除する

in.csv整数配列列を含む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

しかし、それはうまくいきませんでした。 (3番目の行には値はありますが、他の行には値がない5番目の列もあります。)

答え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

関連情報