我有非常大的文件(超过10Gb),只需要文件顶部的一些行。是否可能(在vim中)删除文件的其余部分(从当前行到文件末尾)?
可以使用Vim的删除命令来删除当前行到文件末尾的所有内容,该命令为" :., $d "。其中 "." 表示当前行,"$" 表示文件结尾,"d" 表示删除。因此,在 Vim 中执行 ":., $d" 命令即可删除当前行到文件末尾的所有内容。dG将会从当前行删除到文件末尾。
dCtrl+End将会从光标处删除到文件末尾。
但是,如果这个文件像你所说的那样大,你最好使用 head
命令读取前几行而不是编辑和保存整个文件。
head hugefile > firstlines
(如果您使用的是Windows,您可以使用head
的Win32版本)
head -n20
命令来指定head
命令提供多少行内容,例如:head -n20 hugefile
表示获取一个名为hugefile的文件的前20行内容。默认情况下,n
的值是10。 - drevickodgg
可以将当前行至文件开头的内容删除。 - stevesliva前往您想要删除的第一行,并按下键盘上的 dG 按钮。
:.,$d
此指令将删除当前行至文件结尾的所有内容。当您需要进行测试向量生成或去除操作时,此指令非常有用。
:<行号>,$d
,例如::3,$d
将会删除从第三行到文件结尾的所有内容。 - emont01Esc
键确保您处于普通模式。V
键进入可视化模式。G
即Shift + g
来选择从光标到文件结尾的文本。x
键来删除所选文本。ctrl+v
然后G
,选择其余部分,然后D
,但我认为这并不有效,你应该像@Ed Guiness那样在Linux中使用head -n 20 > filename。
head -n <行数> <文件名> > <截断后的文件名>
在这里,“-n” 是你想要从文件顶部获取的行数的参数。 - EhevuTov