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

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

Portanto, tenho algum texto em um arquivo que quase representa o formato CSV, mas não inteiramente. Eu quero 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!

Desde já, obrigado.

Responder1

ficar boquiabertoabordagem:

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

O fileconteúdo:

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

-i inplace- permiteno lugarmodificação de arquivo

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

informação relacionada