Luego de tanto trabajar hemos hallado el arreglo de este atolladero que ciertos de nuestros lectores de nuestra web han tenido. Si quieres compartir algún detalle puedes compartir tu información.
Solución:
Enfoque más simple:
tr -d '"' b.csv
Usar gsub()
función de sustitución global
$ awk 'gsub(/"/,"");1' input.csv
1,2,3,4,9
1,2,3,6,24
1,2,6,8,28
1,2,4,6,30
Para enviar la salida a un nuevo uso de archivo >
operador de shell:
awk 'gsub(/"/,"");1' input.csv > output.csv
tu división a array También se puede usar el enfoque, aunque no es necesario, pero puede usarlo así:
$ awk 'split($0,a,"""); print a[2]' input.cvs
1,2,3,4,9
1,2,3,6,24
1,2,6,8,28
1,2,4,6,30
Tenga en cuenta que en esta pregunta en particular, el patrón general es que las comillas están al principio y al final de la línea, lo que significa que también podemos tratarlo como un separador de campo, donde el campo 1 es nullel campo 2 es 1,2,3,4
y el campo 3 también es null. Así, podemos hacer:
awk -F '"' 'print $2' input.csv
Y también podemos sacar una subcadena de toda la línea:
awk 'print substr($0,2,length($0)-2)' quoted.csv
Hablando de eliminar los primeros y últimos caracteres, hay una publicación completa en stackoverflow sobre eso con otras herramientas como sed
y carcasa POSIX.
Otra solución con sed
:
sed -e 's/"//g' a.csv > b.csv
Ten en cuenta compartir esta división si te ayudó.