Saya memiliki file teks (70GB), satu baris , dan saya ingin mengganti string (token) di dalamnya. Saya ingin mengganti token <unk>
, dengan token dummy lainnya ( masalah sarung tangan ).
Saya mencoba sed
:
sed 's/<unk>/<raw_unk>/g' < corpus.txt > corpus.txt.new
tetapi file output corpus.txt.new
memiliki nol-byte!
Saya juga mencoba menggunakan perl:
perl -pe 's/<unk>/<raw_unk>/g' < corpus.txt > corpus.txt.new
tapi saya mendapat kesalahan memori.
Untuk file yang lebih kecil, kedua perintah di atas berfungsi.
Bagaimana saya bisa mengganti string adalah file seperti itu? Ini adalah pertanyaan terkait, tetapi tidak ada jawaban yang cocok untuk saya.
Sunting : Bagaimana dengan memisahkan file dalam potongan 10GB (atau apa pun) masing-masing dan menerapkannya sed
masing-masing dan kemudian menggabungkannya cat
? Apakah itu masuk akal? Apakah ada solusi yang lebih elegan?
split
dengan -b
opsi mendefinisikan ukuran file potongan dalam byte. Proses masing-masing pada gilirannya menggunakan sed
dan merakit kembali. Ada risiko adalah bahwa <unk>
dapat dipecah menjadi dua file dan tidak akan ditemukan ...