GNU/Linux >> Linux Esercitazione >  >> Linux

come rimuovere le virgolette doppie in un csv

Approccio più semplice:

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

Usa gsub() funzione per la sostituzione globale

$ 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

Per inviare l'output a un nuovo file usa > operatore di shell:

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

Anche il tuo approccio di divisione in matrice può essere utilizzato, sebbene non sia necessario, ma puoi usarlo in questo modo:

$ 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

Nota che in questa particolare domanda lo schema generale è che le virgolette sono all'inizio e alla fine della riga, il che significa che possiamo anche trattarlo come separatore di campo, dove il campo 1 è nullo, il campo 2 è 1,2,3,4 e anche il campo 3 è nullo. Quindi, possiamo fare:

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

E possiamo anche eliminare la sottostringa dell'intera riga:

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

Parlando di rimuovere il primo e l'ultimo carattere, c'è un intero post su StackOverflow a riguardo con altri strumenti come sed e shell POSIX.


Un'altra soluzione con sed :

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

Linux
  1. Come rimuovere l'utente in Linux utilizzando la riga di comando

  2. Perché The Tilde (~) non si espande all'interno di virgolette doppie?

  3. Come rimuovere i duplicati in .bash_history, mantenendo l'ordine?

  4. Come rimuovere la password dalla tua chiave SSL

  5. Come rimuovere il gestore della cache di cPanel

Come rimuovere Unity Desktop da Ubuntu 17.10

Come rimuovere i collegamenti su Google Chrome

Rimuovi directory in Linux - Come eliminare una cartella dalla riga di comando

Come eliminare domini/sottodomini nel cPanel?

Come rimuovo il percorso completo quando eseguo una compressione tar.gz?

Sostituzione del trattino basso con virgola e rimozione delle virgolette doppie in CSV