Comment supprimer toutes les instances d'un symbole particulier d'un fichier texte?

13

J'ai un énorme fichier CSV (environ un demi-Gio, impossible d'utiliser un éditeur de texte habituel) avec des champs entre guillemets, "abc","def"mais j'ai besoin d'un fichier sans guillemets (je suis sûr que cela ne va pas briser la cohérence du fichier - une virgule n'est jamais utilisée à l'intérieur des valeurs qu'elle contient).

Comment supprimer toutes les citations (sans introduire d'espaces sur leurs emplacements)?

Ivan
la source

Réponses:

21

tr peut faire ça:

tr -d \" < infile > outfile

Vous pouvez également utiliser sed:

sed 's/"//g' < infile > outfile
Chris Down
la source
1
Pourquoi avez-vous supprimé < infile > outfile? À mon humble avis, il était plus informatif.
Ivan
@Ivan Je pensais que c'était probablement implicite à la réflexion.
Chris Down
Uniquement pour les utilisateurs expérimentés en ligne de commande. Même si j'ai déjà utilisé <plusieurs fois (pour importer des scripts SQL dans MySQL et SQLite), il serait immédiatement évident pour moi que je devrais utiliser <dans ce cas. Je pense qu'il serait préférable de renvoyer l'exemple complet de ligne de commande pour une référence supplémentaire à ceux qui pourraient en avoir besoin.
Ivan
@Ivan et @Chris, je l'ai rétabli (en attente d'examen) pour l'inclure < infile > outfile, j'espère que c'est OK.
donothingsucc
Merci, @donothingsuccès. J'ai totalement mal écrit le commentaire précédent, c'est dommage que je ne puisse pas le modifier% -]
Ivan
5

Une autre version de la commande sed :

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

    • -i i n-place (éditer le fichier sur place)
    • sla commande s ubstitute
    • /replacement_from_reg_exp/replacement_to_text/ déclaration
    • \"guillemets précédés d'une barre oblique inversée ( replacement_from_reg_exp )
    • chaîne vide entre les suppresseurs de barres obliques ( replacement_to_text )
    • g g lobal (pour remplacer toutes les occurrences en ligne)
  • file.txt le nom du fichier

simhumileco
la source