Tôi có một tệp lớn (70GB), một dòng , tệp văn bản và tôi muốn thay thế một chuỗi (mã thông báo) trong đó. Tôi muốn thay thế mã thông báo <unk>
, bằng một mã thông báo giả khác ( vấn đề găng tay ).
Tôi đã thử sed
:
sed 's/<unk>/<raw_unk>/g' < corpus.txt > corpus.txt.new
nhưng tập tin đầu ra corpus.txt.new
có byte không!
Tôi cũng đã thử sử dụng perl:
perl -pe 's/<unk>/<raw_unk>/g' < corpus.txt > corpus.txt.new
nhưng tôi đã hết một lỗi bộ nhớ.
Đối với các tệp nhỏ hơn, cả hai lệnh trên đều hoạt động.
Làm thế nào tôi có thể thay thế một chuỗi là một tập tin như vậy? Đây là một câu hỏi liên quan, nhưng không có câu trả lời nào phù hợp với tôi.
Chỉnh sửa : Điều gì về việc chia tệp thành từng phần 10 GB (hoặc bất cứ thứ gì) và áp dụng sed
cho từng tệp và sau đó hợp nhất chúng với cat
? Điều đó có ý nghĩa? Có một giải pháp thanh lịch hơn?
split
với -b
tùy chọn xác định kích thước tệp chunk theo byte. Xử lý lần lượt từng bộ phận sử dụng sed
và lắp ráp lại. Có một rủi ro là <unk>
có thể chia thành hai tệp và sẽ không được tìm thấy ...