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)?

Jawaban:


21

tr dapat melakukan itu:

tr -d \" < infile > outfile

Anda juga bisa menggunakan sed:

sed 's/"//g' < infile > outfile

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

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.