Хотя нам было приказано не делать этого, мой коллега использовал vi для просмотра большого текстового файла (server.log 3,5 ГБ). Это заполнило / var / tmp и вызвало некоторые проблемы на сервере.
Что вызвало это? Почему бы нам не использовать vi для больших файлов?
vi
(илиvim
в этом отношении) чертовски медленно работает с большими файлами и может даже оказаться непригодным для использования, если не слишком много концов строк. Кроме того, файл должен уместиться в памяти. Используйтеless
для больших файлов, это намного быстрее и часто достаточно для чтения / просмотра файлов журнала.Ответы:
Каталогу по умолчанию (/ var / tmp) для буфера редактирования vi требуется пространство, равное примерно вдвое размеру файла, с которым вы работаете, потому что vi использует дополнительные строки для работы с буфером.
Если в каталоге / var / tmp недостаточно места для буфера редактирования (например, вы работаете с большим файлом или системе не хватает места
иногда вы можете получить следующее сообщение об ошибке, как это также
Вы можете прочитать о том, как это исправить здесь: http://kb.iu.edu/data/akqv.html
источник
Vim не был предназначен для больших файлов. У этого есть определенные особенности, которые резко замедляют пользовательский опыт. Например, он загружает файл в память, что в основном ограничивает редактирование файлов, размер которых меньше размера вашей памяти. Более того, такие функции, как подсветка синтаксиса, файл подкачки и отмена, очень неэффективны с большими файлами и еще больше замедляют работу. Другая проблема заключается в том, что
vim
ожидаются не слишком длинные очереди. Если файл содержит несколько символов новой строки,vim
становится непригодным для использования.Тем не менее, есть плагины, как vim-largefile, которые изменяют определенные параметры, чтобы быть более эффективными с большими файлами, но, в конце концов
vim
, никогда не будут быстрыми, если вы добавите в него несколько GiB.Суть в том, что не используйте
vim
большие файлы. Если вы хотите просматривать (в отличие от редактирования) большие файлы, используйтеless
. Если вы хотите найти шаблон, используйте косую черту, чтобы начать поиск шаблона:Если вы хотите отфильтровать вывод, используйте амперсанд:
Затем начните непрерывный вывод, используя shift-f . Вы можете выйти из режима непрерывного вывода с помощью ctrl-cи уточнить или отменить шаблон фильтра или начать поиск.
Для редактирования больших файлов используйте такие инструменты, как
sed
, они эффективны и предназначены именно для этой цели.источник