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

У меня есть текстовый файл на 4.6 ГБ, который я должен перерыть.

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

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

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

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

2 ответа

С файлом на 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 , потому что могло быть больше приемов. Например, Я вижу там, что кто-то сообщает, что плагин энергии специально для больших файлов — никогда не пробовал этого.

0
ответ дан 8 December 2019 в 04:00

Удивительно 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
ответ дан 8 December 2019 в 04:00

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

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