Remover uma coluna de matriz de um arquivo CSV

1

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).

    
por user203942 05.12.2016 / 15:57

3 respostas

1

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.

    
por 30.01.2017 / 10:21
0

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
por 05.12.2016 / 16:22
0

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
    
por 05.12.2016 / 17:27

Tags