Bagaimana cara menghapus semua contoh simbol tertentu dari file teks?

13

Saya punya file CSV besar (sekitar setengah GiB, tidak mungkin untuk menggunakan editor teks biasa) dengan bidang terlampir dalam tanda kutip ganda seperti "abc","def"tetapi membutuhkan file tanpa tanda kutip (saya yakin ini tidak akan merusak konsistensi file - koma tidak pernah digunakan di dalam nilai di dalamnya).

Bagaimana cara menghapus semua tanda kutip (tanpa memasukkan spasi di tempat mereka)?

Ivan
sumber

Jawaban:

21

tr dapat melakukan itu:

tr -d \" < infile > outfile

Anda juga bisa menggunakan sed:

sed 's/"//g' < infile > outfile
Chris Down
sumber
1
Kenapa kamu dihapus < infile > outfile? IMHO itu lebih informatif.
Ivan
@Van, saya pikir itu mungkin tersirat pada pemikiran kedua.
Chris Down
Hanya ketika untuk pengguna baris perintah yang berpengalaman. Meskipun saya telah menggunakan <beberapa kali sebelumnya (untuk mengimpor skrip SQL ke MySQL dan SQLite) Akan segera jelas bagi saya bahwa saya harus menggunakan <dalam kasus ini. Saya pikir akan lebih baik untuk mengembalikan contoh baris perintah penuh kembali untuk referensi lebih lanjut dari mereka yang mungkin membutuhkannya.
Ivan
@Ivan dan @Chris, saya telah mengembalikannya (menunggu tinjauan) untuk dimasukkan < infile > outfile, harap tidak apa-apa.
Donasi berhasil
Terima kasih, @tidak berhasil. Saya benar-benar salah mengetik komentar sebelumnya, sayang sekali saya tidak bisa mengeditnya% -]
Ivan
5

Versi lain dari perintah sed :

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

    • -i i n-place (edit file di tempat)
    • syang s perintah ubstitute
    • /replacement_from_reg_exp/replacement_to_text/ pernyataan
    • \"kutipan diawali dengan backslash ( replacement_from_reg_exp )
    • string kosong antara penghilang garis miring ( replacement_to_text )
    • g g lobal (untuk mengganti semua kejadian yang terjadi)
  • file.txt nama file

simhumileco
sumber