GNU/Linux >> Belajar Linux >  >> Linux

cara menghapus tanda kutip ganda di csv

Pendekatan paling sederhana:

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

Gunakan gsub() fungsi untuk substitusi global

$ 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

Untuk mengirim output ke file baru, gunakan > operator shell:

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

Pendekatan pemisahan ke array Anda juga dapat digunakan, meskipun tidak diperlukan, tetapi Anda dapat menggunakannya seperti itu:

$ 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

Perhatikan bahwa dalam pertanyaan khusus ini pola umumnya adalah tanda kutip berada di awal dan akhir baris, yang berarti kita juga dapat memperlakukannya sebagai pemisah bidang, di mana bidang 1 adalah nol, bidang 2 adalah 1,2,3,4 , dan bidang 3 juga nol. Dengan demikian, kita dapat melakukan:

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

Dan kita juga bisa mengambil substring dari keseluruhan baris:

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

Berbicara tentang pengupasan karakter pertama dan terakhir, ada seluruh posting di stackoverflow tentang itu dengan alat lain seperti sed dan cangkang POSIX.


Solusi lain dengan sed :

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

Linux
  1. Mengapa The Tilde (~) Tidak Memperluas Di Dalam Kutipan Ganda?

  2. Bagaimana Cara Menghapus Bom Dari File Utf-8?

  3. Bagaimana Cara Menghapus Telegram?

  1. Cara Menghapus Pengguna di Linux Menggunakan Command Line

  2. Bagaimana cara menggunakan sed untuk menghapus hanya dua baris kosong?

  3. Bagaimana cara menghapus perangkat cache dari bcache?

  1. Bagaimana Cara Menghindari Kutipan Di Shell?

  2. Bagaimana Cara Menghapus Duplikat Di .bash_history, Mempertahankan Pesanan?

  3. Hapus Koma Antara Kutipan Hanya Dalam File Yang Dibatasi Koma?