Ponha aspas entre strings entre vírgulas, mas não números

0

Então, eu tenho um texto em um arquivo que quase representa o formato CSV, mas não inteiramente. Eu quero me transformar em um arquivo CSV.

Eu tenho, por exemplo:

cuz,0,1,2,3,-4,abc,a b c,0

Como posso transformar isso em

"cuz",0,1,2,3,-4,"abc","a b c",0

Qualquer ajuda seria apreciada!

Obrigado antecipadamente.

    
por user1840352 25.04.2017 / 22:41

1 resposta

1

gawk abordagem:

gawk -i inplace -F, '{for(i=1;i<=NF;i++){ 
      if ($i!~/^-?[0-9]*$/) $i=sprintf("\"%s\"",$i); }}1' OFS=',' file

O conteúdo file :

"cuz",0,1,2,3,-4,"abc","a b c",0

-i inplace - permite a modificação do arquivo no local

$i!~/^-?[0-9]*$/ - somente campo de correspondência de padrões que contém caracteres, exceto números

    
por 25.04.2017 / 23:10