Quiero agregar una columna (segundo lugar) en un .csv
archivo y quiero que los valores de esa columna sean cadenas y se citen;
El siguiente comando agrega la columna pero sin comillas:
awk -F"," 'BEGIN { OFS = "," } {$2="2.4.0"; print}' test.csv > output.csv
El siguiente enfoque incorpora las comillas, pero por alguna razón elimina el último .
(punto) del valor
awk -F"," 'BEGIN { OFS = "," } {$2="\""2.4.0"\""; print}' test.csv > output.csv
entonces mis valores terminan siendo "2.40".
¿Cómo debo hacer esto?
Respuestas:
Parece que tienes las citas equivocadas. Necesitas hacer lo siguiente
Esto se explica en la página de manual de GNU awk - 3.2 Secuencias de escape
En cuanto a la razón por la que pude entender la razón del comportamiento,
awk
parece haber interpretado2.4.0
como una palabra numérica con las comillas adicionales de su OP y decide perder la precisión después del primer punto.es decir
se vuelve justo
que
awk
ya no entiende como una cadena. Puede reproducir este comportamiento simplemente haciendoque resulta ser el resultado cuando lo haces
fuente
{ print 2.4.0 }
o{ print 2.4.0 + 0 }
, es decir, como un constituyente sin cadenas. Traté de buscar documentos relevantes también, pero no pudeawk -v q='"' '... print q "2.4.0" q ...