Самый быстрый редактор / пейджер для текстового поиска
У меня есть текстовый файл объемом 4,6 ГБ, который мне нужен для поиска.
Удивительно, но grep работает довольно быстро, но мне нужно иметь возможность прокручивать файл после поиска определенного текста.
Меньше, как правило, мой инструмент выбора, но он медленный как патока для этого.
Какой пейджер и / или редактор лучше всего подойдут для файла размером 4,6 ГБ? У моего ноутбука всего 16 ГБ ОЗУ, поэтому он должен быть несколько эффективнее при использовании ОЗУ.
2 ответа
Удивительно, но 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
С 1,5 ГБ файлом Vim у меня работает. Текстовый поиск несуществующей строки, т. Е. По всему файлу, занял 10-15 секунд. на моем ноутбуке. Обратите внимание, что vim полностью загружает файл в память. Вероятно, не проблема для вас с 16 ГБ ОЗУ.
Но у меня есть это в моем ~/.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 специально для больших файлов - никогда не пробовал этот.