GNU/Linux >> Znalost Linux >  >> Linux

jak odstranit dvojité uvozovky v csv

Nejjednodušší přístup:

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

Použijte gsub() funkce pro globální substituci

$ 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

Pro odeslání výstupu do nového souboru použijte > operátor shellu:

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

Můžete také použít váš přístup rozdělení na pole, i když to není nutné, ale můžete jej použít takto:

$ 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

Všimněte si, že v této konkrétní otázce je obecný vzorec takový, že uvozovky jsou na začátku a na konci řádku, což znamená, že to také můžeme považovat za oddělovač polí, kde pole 1 je nulové, pole 2 je 1,2,3,4 a pole 3 je také nulové. Můžeme tedy udělat:

awk -F '\"' '{print $2}' input.csv

A také můžeme vyjmout podřetězec celého řádku:

awk '{print substr($0,2,length($0)-2)}' quoted.csv

Když už mluvíme o odstranění prvního a posledního znaku, o tom je celý příspěvek na stackoverflow s dalšími nástroji, jako je sed a POSIX shell.


Další řešení s sed :

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

Linux
  1. Jak uniknout citacím v Shellu?

  2. Jak použít sed k odstranění posledních n řádků souboru

  3. Nahrazení podtržítka čárkou a odstranění dvojitých uvozovek v CSV

  1. Proč se Tilda (~) nerozšíří uvnitř dvojitých uvozovek?

  2. Jak odstranit duplikáty v .bash_history, zachování pořádku?

  3. Jak odstranit Bom ze souboru UTF-8?

  1. Odstranit čárku mezi uvozovkami pouze v souboru odděleném čárkou?

  2. Jak odstranit applet indikátoru ikony pošty?

  3. Jak odstranit telegram?