¿Cómo eliminar todas las instancias de un símbolo particular de un archivo de texto?

13

Tengo un archivo CSV enorme (aproximadamente medio GiB, imposible de usar un editor de texto habitual) con campos encerrados entre comillas dobles, "abc","def"pero necesito un archivo sin comillas (estoy seguro de que esto no va a romper la consistencia del archivo, una coma nunca se usa dentro de los valores que contiene).

¿Cómo eliminar todas las comillas (sin introducir espacios en sus lugares)?

Ivan
fuente

Respuestas:

21

tr puedo hacer eso:

tr -d \" < infile > outfile

También puedes usar sed:

sed 's/"//g' < infile > outfile
Chris Down
fuente
1
¿Por qué te quitaste < infile > outfile? En mi humilde opinión fue más informativo.
Ivan
@ Ivan pensé que probablemente estaba implícito en el segundo pensamiento.
Chris Down
Solo cuando sea para usuarios experimentados de la línea de comandos. Aunque lo he usado <antes un par de veces (para importar scripts SQL en MySQL y SQLite) Sería obvio para mí que debería usarlo <en este caso. Creo que sería mejor devolver el ejemplo completo de la línea de comandos para obtener más referencias de aquellos que lo necesiten.
Ivan
@Ivan y @Chris, lo he revertido (pendiente de revisión) para incluir < infile > outfile, espero que esté bien.
donothings exitosamente
Gracias, @donothings exitosamente. He escrito mal el comentario anterior, es una pena que no pueda editarlo% -]
Ivan
5

Otra versión del comando sed :

sed -i s/\"//g file.txt
  • sed s tream ed Itor

    • -i i n-place (editar archivo en su lugar)
    • sel comando s ubstitute
    • /replacement_from_reg_exp/replacement_to_text/ declaración
    • \"citas precedidas de barra diagonal inversa ( replace_from_reg_exp )
    • cadena vacía entre delemiters barra ( replacement_to_text )
    • g g lobal (para reemplazar todas las ocurrencias en línea)
  • file.txt el nombre del archivo

simhumileco
fuente