我尝试在 VIM 中打开一个巨大的(~2GB)文件,但它被卡住了。我实际上不需要编辑文件,只需高效地跳转即可。
我如何在 VIM 中处理非常大的文件?
我今天有一个 12GB 的文件需要编辑。 vim LargeFile 插件对我不起作用。它仍然耗尽了我所有的内存,然后打印了一条错误消息:-(。我不能使用 hexedit,因为它不能插入任何内容,只能覆盖。这是另一种方法:
您拆分文件,编辑各个部分,然后重新组合它。但您仍然需要两倍的磁盘空间。
-
Grep 查找您要编辑的行周围的内容:
grep -n 'something' HUGEFILE | head -n 1
-
提取文件的该范围。假设您要编辑的行位于第 4 行和第 5 行。然后执行以下操作:
sed -n -e '4,5p' -e '5q' HUGEFILE > SMALLPART
- The
-n
需要选项来抑制 sed 打印所有内容的默认行为
-
4,5p
打印第 4 行和第 5 行
-
5q
处理完第 5 行后中止 sed
Edit SMALLPART
使用您最喜欢的编辑器。
-
合并文件:
(head -n 3 HUGEFILE; cat SMALLPART; sed -e '1,5d' HUGEFILE) > HUGEFILE.new
- 即:从 HUGEFILE 中选取已编辑行之前的所有行(在本例中为前 3 行),将其与已编辑行(在本例中为第 4 行和第 5 行)组合,并使用此组合行集来替换HUGEFILE 中的等效项(在本例中为前 5 行)并将其全部写入一个新文件。
HUGEFILE.new
现在将是您编辑的文件,您可以删除原始文件HUGEFILE
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)