¿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)?

Respuestas:


21

tr puedo hacer eso:

tr -d \" < infile > outfile

También puedes usar sed:

sed 's/"//g' < infile > outfile

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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.