На этот вопрос уже есть ответ здесь:
Я использую Ubuntu 14.04. У меня есть большой файл журнала:
-rw-r--r-- 1 rails root 1792390124 Jan 10 14:54 /var/log/unicorn/unicorn.log
Тем не менее, мне нужно открыть его и найти в нем кое-что. Я пробовал vim, но при запуске
vim /var/log/unicorn/unicorn.log
просто открывается пустой экран, и даже когда я использую Ctrl + C , ничего не происходит. Терминал завис. Не обновляя какое-либо оборудование на моем компьютере (но я открыт для установки программного обеспечения), как я могу открыть файл и осмотреться (мне не нужно его редактировать, мне просто нужно прочитать из него несколько строк).
При работе с большими файлами лучше минимизировать объем информации, с которой вы собираетесь иметь дело, и для этого есть инструменты. Одним из упомянутых инструментов является grep
для поиска нужных вам строк. Еще два инструмента, которые я бы порекомендовал использовать, это tail
и head
, которые могут отображать определенное количество строк или байтов от начала файла (head
) или от конца (tail
). Это полезно, если вам нужно только прочитать эти конкретные части файла, но ничего между ними нет.
Альтернативный способ - использовать команду split
. Он может разбить файл на основе количества байтов или строк. Например,
$ mkdir SPLIT
$ cd SPLIT/
$ split -l 5 /etc/passwd
$ ls
xaa xab xac xad xae xaf xag xah xai xaj
Теперь мой /etc/password
разбит на более мелкие файлы по 5 строк в каждом, которые вы можете открыть с помощью vim или другого текстового редактора
Используйте использование команды less
. less
более эффективный способ считать файл в память. Существует 2 эквивалентных команды: more
и most
(что последний необходимо установить). Помещенные единственная страница в память.
, Но Ваш Наилучший вариант для поиска должен был бы использовать grep
. Пример:
grep {searchstring} {file}
И взглянули на logrotate
, таким образом, Вы охватываете тот журнал по нескольким файлам.
И split
может разделить Ваш текущий файл на равные части, таким образом, у Вас есть более легкая жизнь, смотрящая на тот журнал.
Это зависит от того, какова Ваша цель.
, Если Вы хотите просмотреть путем прокрутки цельный файл журнала, можно использовать less
или more
команды для получения постранично представление файла под рукой.
Иначе, если Вы знаете, где в файле Вы ищете, можно использовать head
или tail
команды для захвата раздела/выборки файла. См. man head
и man tail
для получения дополнительной информации относительно того, как искать точные части.
при поиске определенной строки/записи можно использовать grep
для поиска файла строку. Можно или использовать cat file | grep something
или grep something file
в зависимости от того, что Вы хотите сделать.
, С другой стороны, если Вы хотите сделать еще некоторые усовершенствованные вещи, Вы могли бы посмотреть на использование sed
или awk
для более усовершенствованных операций в случае необходимости.
Если Вы знаете точно, какую строку Вы хотите, используйте grep
. Но если Вы ищете что-то, в чем Вы не уверены, использование less
лучше, потому что оно покажет Вам контекст (который особенно полезен для файлов журнала).
Тип эти /
команда из less
для открытия поля поиска. Введите то, что Вы хотите затем хит, входят. Затем продолжать искать то же слово, тип n
для продвижения и N
для движения назад. Переходить в конец типа файла G
, затем N
или ?
.