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

Получить последние 100 строк журналов

Мне нужно получить последние 100 строк журналов из файла журнала. Я попробовал команду sed

sed -n -e '100,$p' logfilename

Пожалуйста, дайте мне знать, как я могу изменить эту команду, чтобы специально получить last 100 строк.

4b9b3361

Ответ 1

Вы можете использовать команду tail следующим образом:

tail -100 <log file>   > newLogfile

Теперь последние 100 строк будут присутствовать в newLogfile

РЕДАКТИРОВАТЬ:

Более поздние версии tail, упомянутые командой twalberg use:

tail -n 100 <log file>   > newLogfile

Ответ 2

Посмотрите, скрипт sed, который печатает 100 последних строк, которые вы можете найти в документации по sed (https://www.gnu.org/software/sed/manual/sed.html#tail):

$ cat sed.cmd
1! {; H; g; }
1,100 !s/[^\n]*\n//
$p

$ sed -nf sed.cmd logfilename

Для меня это намного сложнее, чем ваш сценарий, поэтому

tail -n 100 logfilename

намного проще И это довольно эффективно, он не будет читать весь файл, если это не нужно. Смотрите мой ответ с отчетом о tail./huge-file: https://unix.stackexchange.com/questions/102905/does-tail-read-the-whole-file/102910#102910

Ответ 3

"tail" - это команда для отображения последней части файла, использование правильных доступных ключей помогает нам получить более конкретный вывод. для меня чаще всего используются переключатели -n и -f

СИНТАКСИС

хвост [-f | -f | -r] [-q] [-b номер | -c номер | -n номер] [файл...]

Вот

-n номер: местоположение - это номер строки.

-f: опция -f заставляет tail не останавливаться при достижении конца файла, а скорее ждать добавления дополнительных данных ко входу. Опция -f игнорируется, если стандартный ввод - это канал, но не если это FIFO.

Получить последние 100 строк журналов

To get last static 100 lines  
     tail -n 100 <file path>

To get real time last 100 lines
     tail -f -n 100 <file path>

Ответ 4

Я знаю, что это очень старо, но, кому бы это ни помогло.

less +F my_log_file.log

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

это как VIM для журналов [полностью мое мнение]

Оригинал меньше документации: https://linux.die.net/man/1/less

меньше чит-листа: https://gist.github.com/glnds/8862214

Ответ 5

len='cat filename | wc -l'
len=$(( $len + 1 ))
l=$(( $len - 99 ))
sed -n "${l},${len}p" filename

в первой строке берется длина (общее количество строк) файла, затем +1 в итоговых строках, после чего мы должны собрать 100 записей, поэтому -99 из общей длины затем просто положить переменные в команде sed, чтобы получить последние 100 строк. из файла

Я надеюсь, что это поможет вам.