Ответ 1
grep --after-context=5 --before-context=10 'Nov 12 2012' yourfile.log
Это будет отображаться каждая строка, содержащая текст даты, а также 10 строк текста до линии, которая соответствует, и 5 строк ПОСЛЕ соответствия линии.
У меня очень большой файл журнала (6 концертов).
Я хочу найти "12 ноября 2012" и распечатать каждую строку.
Я начинающий новичок и понятия не имею, как это делается. Скорее всего, потребуется больше возможностей для просмотра X числа строк и продвижения вперед по поиску.
grep --after-context=5 --before-context=10 'Nov 12 2012' yourfile.log
Это будет отображаться каждая строка, содержащая текст даты, а также 10 строк текста до линии, которая соответствует, и 5 строк ПОСЛЕ соответствия линии.
Вы можете использовать grep
для отображения соответствующих строк и less
в качестве пейджера:
grep 'Nov 12 2012' /path/to/logfile | less
Введите "пробел" в конце каждой страницы, чтобы перейти к следующему экрану результатов.
Вы можете использовать grep
следующим образом:
grep 'Nov 12 2012' file_to_search.log > search_results.log
Некоторые объяснения:
grep
- это имя команды/инструмента, используемого для поиска шаблонов'Nov 12 2012'
: сразу после grep
и разделяется хотя бы на 1 пробел, вы указываете шаблон, который хотите найтиfile_to_search.log
: в качестве последнего аргумента grep
здесь указываются файлы, которые вы хотите найти> search_results.log
: >
означает вывод redirection. Здесь это означает "написать вывод из этой команды в файл с именем search_results.log
. Если файл уже существует, полностью перезапишите его.После получения результата вы можете просмотреть результаты с помощью текстового редактора по вашему выбору или с помощью less
, поэтому используйте любое из следующих действий:
less search_results.log
gedit search_results.log
emacs search_results.log
vim search_results.log
Откройте файл в формате script, а затем выполните поиск по ключевому слову, которое вы хотите найти следующим образом.
$vi <logfilename>
&
:/search
Это хороший способ обнаружения ошибок в больших файлах журнала: grep --after-context = 5 --before-context = 10 'Error' yourfile.log или grep --after-context = 5 --before- context = 10 'Exception' yourfile.log