Büyük bir (70GB), bir satır , metin dosyasına sahibim ve içindeki bir dizgiyi (token) değiştirmek istiyorum. Belirteci <unk>, başka bir sahte belirteçle değiştirmek istiyorum ( eldiven sorunu ).
Denedim sed:
sed 's/<unk>/<raw_unk>/g' < corpus.txt > corpus.txt.new
ancak çıktı dosyasının corpus.txt.newsıfır baytı var!
Perl kullanarak da denedim:
perl -pe 's/<unk>/<raw_unk>/g' < corpus.txt > corpus.txt.new
ama yetersiz bellek hatasıyla karşılaştım.
Daha küçük dosyalar için, yukarıdaki komutların ikisi de çalışır.
Nasıl bir dize değiştirebilirim böyle bir dosyadır? Bu ilgili bir soru, ancak cevapların hiçbiri benim için çalıştı.
Düzenleme : Dosyayı sedher biri 10GB'lık (veya her neyse) parçalara bölmek ve her birine uygulamak ve daha sonra bunları birleştirmek cat? bu mantıklı mı? Daha zarif bir çözüm var mı?
splitile -bopsiyon bayt öbek dosya boyutları tanımlayan. Her birini sırayla kullanarak sedtekrar birleştirin. <unk>İki dosyaya bölünebilmesi ve bulunmaması riski var ...