Подтвердить что ты не робот

Поиск в Linux для слова и отображение всей строки

У меня очень большой файл журнала (6 концертов).

Я хочу найти "12 ноября 2012" и распечатать каждую строку.

Я начинающий новичок и понятия не имею, как это делается. Скорее всего, потребуется больше возможностей для просмотра X числа строк и продвижения вперед по поиску.

4b9b3361

Ответ 1

grep --after-context=5 --before-context=10 'Nov 12 2012' yourfile.log

Это будет отображаться каждая строка, содержащая текст даты, а также 10 строк текста до линии, которая соответствует, и 5 строк ПОСЛЕ соответствия линии.

Ответ 2

Вы можете использовать grep для отображения соответствующих строк и less в качестве пейджера:

grep 'Nov 12 2012' /path/to/logfile | less

Введите "пробел" в конце каждой страницы, чтобы перейти к следующему экрану результатов.

Ответ 3

Вы можете использовать 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

Ответ 4

Откройте файл в формате script, а затем выполните поиск по ключевому слову, которое вы хотите найти следующим образом.

$vi <logfilename>
     &
:/search

Ответ 5

Это хороший способ обнаружения ошибок в больших файлах журнала: grep --after-context = 5 --before-context = 10 'Error' yourfile.log или grep --after-context = 5 --before- context = 10 'Exception' yourfile.log