GNU/Linux >> Tutoriales Linux >  >> Linux

como quitar las comillas dobles en un csv

Enfoque más simple:

tr -d '"' <a.csv >b.csv

Usa gsub() función para 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 archivo, use > operador de shell:

awk '{gsub(/\"/,"")};1' input.csv > output.csv

También se puede usar su enfoque de división en matriz, 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 nulo, el campo 2 es 1,2,3,4 y el campo 3 también es nulo. 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 el primer y el último carácter, hay una publicación completa en stackoverflow sobre eso con otras herramientas como sed y shell POSIX.


Otra solución con sed :

sed -e 's/"//g' a.csv > b.csv

Linux
  1. ¿Cómo escapar de las comillas en Shell?

  2. ¿Cómo eliminar duplicados en .bash_history, conservando el orden?

  3. ¿Cómo quitar el Bom de un archivo Utf-8?

  4. ¿Eliminar la coma entre comillas solo en un archivo delimitado por comas?

  5. ¿Cómo eliminar el subprograma indicador del icono de correo?

Cómo quitar el escritorio de Unity de Ubuntu 17.10

Cómo quitar los accesos directos en Google Chrome

Eliminar directorio en Linux:cómo eliminar una carpeta desde la línea de comandos

¿Cómo eliminar Dominios/subdominios en el cPanel?

¿Cómo elimino la ruta completa al hacer una compresión tar.gz?

¿Cómo elimino el dispositivo de caché de bcache?