Quero adicionar uma coluna (2º lugar) em um .csv
arquivo e quero que os valores dessa coluna sejam cadeias de caracteres e sejam citados;
O comando a seguir adiciona a coluna, mas sem aspas:
awk -F"," 'BEGIN { OFS = "," } {$2="2.4.0"; print}' test.csv > output.csv
A abordagem a seguir incorpora as aspas, mas, por algum motivo, remove o último .
(ponto) do valor
awk -F"," 'BEGIN { OFS = "," } {$2="\""2.4.0"\""; print}' test.csv > output.csv
então meus valores acabam sendo "2,40".
Como devo fazer isso?
Respostas:
Parece que você entendeu errado as aspas. Você precisa fazer o seguinte
Isso é explicado na página de manual GNU awk - 3.2 Escape Sequences
Tanto quanto a razão pela qual eu pude entender a razão do comportamento,
awk
parece ter sido interpretada2.4.0
como uma palavra numérica com aspas extras do seu OP e decide perder a precisão após o primeiro ponto.ie
torna-se apenas
que
awk
não entende mais como uma string. Você pode reproduzir esse comportamento simplesmente fazendoque passa a ser o resultado quando você faz
fonte
{ print 2.4.0 }
ou{ print 2.4.0 + 0 }
, ou seja, como um constituinte não-string. Eu tentei pesquisar documentos relevantes também, mas não conseguiawk -v q='"' '... print q "2.4.0" q ...