Usando csvkit
:
$ csvcut -C 4 in.csv
1,2,4,,1
1,2,4,,2
1,2,4,1,3
O sinal -C
especifica quais colunas serão removidas.
Eu tenho um arquivo CSV, in.csv
, que tem uma coluna de matriz inteira:
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
Eu quero ter um arquivo de saída, out.csv
, como:
1,2,4,,1
1,2,4,,2
1,2,4,1,3
Eu tentei:
cut -d , -f4 -- complement in.csv > out.csv
Mas não deu certo. (Eu também tenho a quinta coluna que tem valor para terceira linha mas não para outras).
Usando csvkit
:
$ csvcut -C 4 in.csv
1,2,4,,1
1,2,4,,2
1,2,4,1,3
O sinal -C
especifica quais colunas serão removidas.
Isso fará o trabalho
awk -F'[,]' '{print $1","$2","$3","$(NF-1)","$NF}' in.csv
-F'[,]'
this para sentar o delimitador em ',' $NF
fornece o último item Com sed
, você pode simplesmente fazer:
sed 's/,"{.*}"//' in.csv > out.csv
O resultado:
cat out.csv
1,2,4,,1
1,2,4,,2
1,2,4,1,3