7

У меня есть большой файл журнала, который я хочу просмотреть. Все плохое начинается с определенного появления строки ошибки. Затем я хочу посмотреть на последние x строк с этой точки и посмотреть, что могло послужить причиной этой ошибки. Я не могу открыть файл в моем любимом текстовом редакторе, потому что он исчерпывает всю оперативную память на машине.

Я подумал, что, возможно, мне удастся найти строку, в которой он встречается, а затем использовать другую утилиту для получения данных от x строки к y строке. Это возможно?

1 ответ1

11

Вы можете просто использовать "grep" с опциями -A и / или -B. Ключ -A будет читать число строк X после ошибки, так что это, вероятно, то, что вам нужно, а ключ -B будет читать число строк X до ошибки, поэтому вы должны сделать что-то вроде этого:

grep -A10 -B2 "string to find" /path/and/file.tofind

Найти 10 строк, которые появляются после "строки для поиска", а также 2 строки перед ней.

В качестве альтернативы - и это, вероятно, гораздо худшее решение, вы можете просто использовать "head" и "tail", чтобы найти первую, а затем последнюю часть нужного вам файла, но это предполагает, что вы знаете номера строк. То есть, если у вас есть файл с длинной строкой, и вы хотите прочитать строки 500-510, вы можете попробовать это:

head -510 /etc/file/to/search | tail -10

Который сначала извлечет первые 510 строк файла, а затем прочитает последние 10 из этих строк.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .