我正在使用 Ubuntu,正在寻找一个好的编辑器来编辑大于 4GB 的文件。我只需要将内容放在文件的末尾和开头。我想我可以使用类似
cat "text to add" >> huge_file
附加到文件。这是要走的路线吗?那么前置呢?一般来说,如果我想在中间某处进行编辑,最好的路线是什么?
我试过 VIM,但失败得很惨。我认为 emacs 和 nano 会更糟糕。还有什么?我认为要实现我想要的效果,编辑器必须专门为此设计,不要将文件的全部内容保存在内存中。
答案1
这是部分答案,但是是的,如果您只是附加,我会使用:
cat extra.txt >> huge_file.txt
或者
echo "Single line to add" >> huge_file.txt
对于前置我会这样做:
cat extra.txt huge_file.txt > huge_file_new.txt
答案2
如果您只需要附加,那么这>>huge_file
比任何编辑器都能做到的要好得多,因为它不会触及现有数据。将数据插入文件需要重写插入点后的所有内容,因此即使使用正确的工具也会很慢。
使用 vim 时,请务必尝试使用大文件插件。
英属维尔京群岛是 vi 的一个版本,针对二进制文件。它可以编辑文件的一部分(即从位置 x 到位置 y)。
这维基百科编辑器比较页面有一个支持大文件的专栏。情况相当糟糕。
答案3
Ultraedit 是唯一一款能很好地完成这项工作的编辑器。我也更喜欢 OSS。OSS 并不存在。我特别惊讶的是,vi 没有这个功能……它简直就是一把瑞士军刀。
答案4
超级编辑无需将文件加载到内存中即可编辑文件。我还没有测试过 Linux 版本,也没有测试过 >4GB 的文件,因此无法给出任何保证,但我用 Windows 版本编辑过一些大文件(~1.5 GB)(而且是很久以前)。