У меня есть текстовый файл на 4.6 ГБ, который я должен перерыть.
Удивительно grep довольно быстр, но я должен смочь прокрутить вокруг файла после поиска определенного текста.
Меньше обычно было бы моим предпочтительным инструментом, но это медленно как патока для этого.
Какой пейджер и/или редактор работали бы лучше всего над файлом на 4.6 ГБ? Мой ноутбук имеет 16 ГБ общего количества RAM, таким образом, это должно быть несколько эффективно со своим Использованием оперативной памяти.
С файлом на 1.5 ГБ энергия работает на меня. Текстовый поиск несуществующей строки — т.е. через целый файл — взял в‰ €10-15 секунд. на моем ноутбуке. Отметьте, хотя, энергия загружает файл полностью в память. Вероятно, не проблема для Вас с 16 ГБ RAM.
, Но у меня есть это в моем ~/.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 , потому что могло быть больше приемов. Например, Я вижу там, что кто-то сообщает, что плагин энергии специально для больших файлов — никогда не пробовал этого.
Удивительно 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