Самый быстрый редактор / пейджер для текстового поиска

У меня есть текстовый файл объемом 4,6 ГБ, который мне нужно выполнить.

Удивительно, что grep довольно быстро, но мне нужно прокручивать файл после поиска определенного текста.

Меньше обычно будет моим инструментом выбора, но он медленный, как меласса для этого.

Какой пейджер и / или редактор будут работать лучше всего в файле 4,6 ГБ? Мой ноутбук имеет 16 ГБ оперативной памяти, поэтому он должен быть несколько эффективным с использованием ОЗУ.

1
задан 16 September 2017 в 10:41

4 ответа

Удивительно, что grep довольно быстрый, но мне нужно прокручивать файл после поиска определенного текста.

Возможно использовать опции grep для отображения контекста найденной записи?

Context control: -B, --before-context=NUM print NUM lines of leading context -A, --after-context=NUM print NUM lines of trailing context -C, --context=NUM print NUM lines of output context
0
ответ дан 18 July 2018 в 06:45

С 1,5 Гб файлом vim работает для меня. Текстовый поиск несуществующей строки, т. Е. Через весь файл, занял ≈10-15 сек. на моем ноутбуке. Обратите внимание, что vim полностью загружает файл в память.

Но у меня это в моем ~/.vimrc (к сожалению, не помню исходный источник):

" changes to open really big files let g:LargeFile = 1024 * 1024 * 10 augroup LargeFile autocmd BufReadPre * let f=getfsize(expand("<afile>")) | if f > g:LargeFile || f == -2 | call LargeFile() | endif augroup END function LargeFile() " no syntax highlighting etc set eventignore+=FileType " save memory when other file is viewed setlocal bufhidden=unload " is read-only (write with :w new_filename) setlocal buftype=nowrite " no undo possible setlocal undolevels=-1 " display message autocmd VimEnter * echo "The file is larger than " . (g:LargeFile / 1024 / 1024) . " MB, so some options are changed (see .vimrc for details)." endfunction

Возможно, вы также можете заинтересуйтесь подобным вопросом на другом сайте SE, потому что может быть больше трюков. Например. Я вижу, что кто-то советует плагин vim специально для больших файлов - никогда не пробовал этот.

0
ответ дан 18 July 2018 в 06:45
Удивительно, что grep довольно быстрый, но мне нужно прокручивать файл после поиска определенного текста.

Возможно использовать опции grep для отображения контекста найденной записи?

Context control: -B, --before-context=NUM print NUM lines of leading context -A, --after-context=NUM print NUM lines of trailing context -C, --context=NUM print NUM lines of output context
0
ответ дан 24 July 2018 в 18:40

С 1,5 Гб файлом vim работает для меня. Текстовый поиск несуществующей строки, т. Е. Через весь файл, занял ≈10-15 сек. на моем ноутбуке. Обратите внимание, что vim полностью загружает файл в память.

Но у меня это в моем ~/.vimrc (к сожалению, не помню исходный источник):

" changes to open really big files let g:LargeFile = 1024 * 1024 * 10 augroup LargeFile autocmd BufReadPre * let f=getfsize(expand("<afile>")) | if f > g:LargeFile || f == -2 | call LargeFile() | endif augroup END function LargeFile() " no syntax highlighting etc set eventignore+=FileType " save memory when other file is viewed setlocal bufhidden=unload " is read-only (write with :w new_filename) setlocal buftype=nowrite " no undo possible setlocal undolevels=-1 " display message autocmd VimEnter * echo "The file is larger than " . (g:LargeFile / 1024 / 1024) . " MB, so some options are changed (see .vimrc for details)." endfunction

Возможно, вы также можете заинтересуйтесь подобным вопросом на другом сайте SE, потому что может быть больше трюков. Например. Я вижу, что кто-то советует плагин vim специально для больших файлов - никогда не пробовал этот.

0
ответ дан 24 July 2018 в 18:40

Другие вопросы по тегам:

Похожие вопросы: