I have very large files (more than 10Gb). I need only some lines from the top of the file. Is it possible (in vim) to delete the rest of the file (from current line to the end of file)?
-
15I know you want to use Vim, but I'd do a shell command like: `head -n
> ` Where `-n` is the parameter for the number of lines you want from the top
5 Answers
dG will delete from the current line to the end of file
dCtrl+End will delete from the cursor to the end of the file
But if this file is as large as you say, you may be better off reading the first few lines with head
rather than editing and saving the file.
head hugefile > firstlines
(If you are on Windows you can use the Win32 port of head
)

- 34,602
- 16
- 110
- 145
-
20you can specify how many lines `head` supplies with eg: `head -n20 hugefile` for the first 20 lines. n defaults to 10. – drevicko Oct 30 '12 at 00:38
-
4Need a motivation for `head`? Using dG on a large file (1G+) takes a lot of time (e.g., 5 minutes). – BurninLeo Sep 23 '15 at 13:28
-
4For those looking for the converse, `dgg` will delete from the current line to the start of the file. – stevesliva Apr 12 '17 at 21:00
-
d Ctrl+End did not work for me. d Shift+End did though to delete from the cursor to the end of the line. – lightwing May 04 '18 at 16:30
Go to the first line from which you would like to delete, and press the keys dG

- 1,023
- 6
- 6
:.,$d
This will delete all content from current line to end of the file. This is very useful when you're dealing with test vector generation or stripping.

- 2,237
- 27
- 30
- 38

- 421
- 4
- 2
-
3I prefer to have more control of the starting line, so I use: `:
,$d` for example: `:3,$d` will delete from line 3 to the end of file – emont01 Nov 28 '17 at 14:29
I use the following steps to do the same-
- Make sure you are in the normal mode by pressing
Esc
. - Enter the Visual mode by pressing
V
. - Press
G
i.eShift + g
to select the text from the cursor to the end of the file . - Now press
x
to delete the selected text .

- 141
- 1
- 5
Just add another way , in normal mode , type ctrl+v
then G
, select the rest, then D
, I don't think it is effective , you should do like @Ed Guiness, head -n 20 > filename in linux.

- 1,614
- 17
- 26