gpt4 book ai didi

vim - 在 VIM 中处理大文件

转载 作者:行者123 更新时间:2023-12-03 04:45:24 24 4
gpt4 key购买 nike

我尝试在 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
    • 需要 -n 选项来禁止 sed 打印所有内容的默认行为
    • 4,5p 打印第 4 行和第 5 行
    • 5q 在处理第 5 行后中止 sed
  • 使用您最喜欢的编辑器编辑SMALLPART

  • 合并文件:

    (head -n 3 HUGEFILE; cat SMALLPART; sed -e '1,5d' HUGEFILE) > HUGEFILE.new 
    • 即:从 HUGEFILE 中选取已编辑行之前的所有行(在本例中为前 3 行),将其与已编辑行(在本例中为第 4 行和第 5 行)合并,并使用该组合行集替换 HUGEFILE 中的等效内容(在本例中为前 5 行)并将其全部写入新文件。

    HUGEFILE.new现在将是您编辑的文件,您可以删除原始HUGEFILE

关于vim - 在 VIM 中处理大文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1591723/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com