Converter de vírgula para Coluna (sed)

0

Eu tenho um arquivo * .csv com algum texto no seguinte formato:

a, b, c 
d, e, f
g, h, i

Eu gostaria de converter isso em um arquivo * .xls com três colunas. É possível fazer isso com "sed"?

Edit: Este é apenas um exemplo. O que me interessa é substituir um símbolo por um deslocamento de coluna (se isso não for impossível). Em seguida, quero manipular um texto assim:

Uma única coluna

a[kg/m] 

para o formato de duas colunas

a     [kg/m]

Não tenho certeza se é possível! Mas eu sei que "sed" pode fazer um monte de truques para substituir e modificar arquivos * .csv

    
por Physther 17.11.2016 / 19:56

1 resposta

0

Não sei se entendi corretamente a parte do scond do seu pedido:

A single column a[kg/m] to two column format a [kg/m]

Mas isso converterá seu csv em um arquivo separado por tabulação e com a coluna extra antes de [Kg / m]:

sed -e 's/,/\t/g' -e 's:\(\[Kg/m\]\):\t:g' afile.csv > newfile.csv

Exemplo:

$ cat afile.csv
a[Kg/m],b[Kg/m],c
d[Kg/m],e[Kg/m],f
g[Kg/m],h[Kg/m],i

$ sed -e 's/,/\t/g' -e 's=\(\[Kg/m\]\)=\t=g' afile.csv > newfile.csv

$ cat newfile.csv
a       [Kg/m]  b       [Kg/m]  c
d       [Kg/m]  e       [Kg/m]  f
g       [Kg/m]  h       [Kg/m]  i

Existem dois scripts neste comando sed:

  • -e 's/,/\t/g' substitui ',' em <tab>
  • -e 's=\(\[Kg/m\]\)=\t=g' substitui qualquer [Kg/m] por <tab>[Kg/m]

Agora, sem substituir as guias, você pode adicionar uma coluna extra ao seu arquivo csv com isto:

$ sed -e 's=\(\[Kg/m\]\)=,=g' afile.csv > newfile.csv
$ cat newfile.csv
a,[Kg/m],b,[Kg/m],c
d,[Kg/m],e,[Kg/m],f
g,[Kg/m],h,[Kg/m],i
    
por 18.11.2016 / 04:52

Tags