Eu tenho um enorme (70 GB), uma linha , arquivo de texto e quero substituir uma string (token) nele. Desejo substituir o token <unk>
por outro token fictício ( emissão de luva ).
eu tentei sed
:
sed 's/<unk>/<raw_unk>/g' < corpus.txt > corpus.txt.new
mas o arquivo de saída corpus.txt.new
tem zero bytes!
Eu também tentei usar perl:
perl -pe 's/<unk>/<raw_unk>/g' < corpus.txt > corpus.txt.new
mas recebi um erro de falta de memória.
Para arquivos menores, ambos os comandos acima funcionam.
Como posso substituir uma string como um arquivo? Esta é uma questão relacionada, mas nenhuma das respostas funcionou para mim.
Editar : Que tal dividir o arquivo em pedaços de 10 GB (ou o que for) cada um e aplicar sed
em cada um deles e depois mesclá-los com cat
? Isso faz sentido? Existe uma solução mais elegante?