我必须在一个相当大的文件上查找和替换任务,大小约为47 GB。
有人知道怎么做吗?我尝试使用TextCrawler,EditpadLite等服务,但没有任何东西支持这个大文件。
我假设这可以通过命令行完成。
你知道如何实现这一目标吗?
答案 0 :(得分:36)
答案 1 :(得分:30)
我使用FART - 由Lionello Lunesu查找并替换文本。
在Windows 7 x64上运行良好。
您可以使用以下命令查找并替换文本:
fart -c big_filename.txt "find_this_text" "replace_to_this"
答案 2 :(得分:5)
在Unix或Mac上:
sed' s / oldstring / newstring / g' oldfile.txt> newfile.txt
快速而简单......
答案 3 :(得分:0)
对我来说,这里建议的工具都不合适。 Textcrawler吃了我所有电脑的内存,SED根本没用,Editpad抱怨内存......
解决方案是:在python,perl甚至C ++中创建自己的脚本。
或者使用PowerGrep工具,这是最简单,最快捷的选择。
我没有试过放屁,它只是命令行,也许不是很友好 一些十六进制编辑器,如Ultraedit也可以很好地工作。
答案 4 :(得分:0)
我解决了usig问题,之前将其拆分为小文件,每个文件100 MB。
答案 5 :(得分:-1)
如果您使用类Unix系统,那么您可以使用cat | sed这样做
cat hosted_domains.txt | sed s/com/net/g
示例在域名列表中替换com与net,然后您可以将输出通过管道传输到文件。
答案 6 :(得分:-1)
我用过
sed 's/[nN]//g' oldfile.fasta > newfile.fasta
替换7Gb文件中n的所有实例。
如果我省略了> newfile.fasta
方面,它会花费很长时间,因为它向上滚动显示文件的每一行。
使用> newfile
在ubuntu服务器上运行它只需几秒钟