我有一个巨大的(70GB),一行文本文件,我想替换其中的一个字符串(令牌)。我想<unk>
用另一个虚拟令牌(手套问题)替换令牌。
我试过sed
:
sed 's/<unk>/<raw_unk>/g' < corpus.txt > corpus.txt.new
但输出文件corpus.txt.new
有零字节!
我也尝试使用 perl:
perl -pe 's/<unk>/<raw_unk>/g' < corpus.txt > corpus.txt.new
但我遇到了内存不足的错误。
对于较小的文件,上述两个命令都有效。
如何替换字符串是这样的文件? 这是一个相关的问题,但没有一个答案对我有用。
编辑:如何将文件分成 10GB(或其他)的块并应用sed
到每个块上,然后将它们合并cat
?那有意义吗?有没有更优雅的解决方案?