GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So entfernen Sie die doppelten Anführungszeichen in einer CSV-Datei

Einfachster Ansatz:

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

Verwenden Sie gsub() Funktion zur globalen Substitution

$ 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

Um die Ausgabe an eine neue Datei zu senden, verwenden Sie > Shell-Operator:

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

Ihr Splitting-to-Array-Ansatz kann auch verwendet werden, obwohl es nicht notwendig ist, aber Sie können es so verwenden:

$ 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

Beachten Sie, dass in dieser speziellen Frage das allgemeine Muster darin besteht, dass Anführungszeichen am Anfang und am Ende der Zeile stehen, was bedeutet, dass wir dies auch als Feldtrennzeichen behandeln können, wobei Feld 1 null ist, Feld 2 ist 1,2,3,4 , und Feld 3 ist ebenfalls null. Somit können wir Folgendes tun:

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

Und wir können auch Teilstrings der ganzen Zeile herausnehmen:

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

Apropos Entfernen des ersten und letzten Zeichens, es gibt einen ganzen Post auf Stackoverflow darüber mit anderen Tools wie sed und POSIX-Shell.


Eine andere Lösung mit sed :

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

Linux
  1. Warum wird die Tilde (~) nicht innerhalb doppelter Anführungszeichen erweitert?

  2. Wie entferne ich die Bom aus einer UTF-8-Datei?

  3. Komma zwischen den Anführungszeichen nur in einer kommagetrennten Datei entfernen?

  4. Wie entferne ich das Mail Icon Indicator Applet?

  5. Wie entferne ich ein Telegramm?

So entfernen Sie den Unity-Desktop von Ubuntu 17.10

So entfernen Sie Benutzer in Linux über die Befehlszeile

So entfernen Sie die Verknüpfungen in Google Chrome

Verzeichnis in Linux entfernen – So löschen Sie einen Ordner von der Befehlszeile aus

Wie entferne ich Duplikate in der .bash_history, um die Reihenfolge beizubehalten?

Wie lösche ich Domains/Subdomains im cPanel?