Мне нужно получить последние 100 строк журналов из файла журнала. Я попробовал команду sed
sed -n -e '100,$p' logfilename
Пожалуйста, дайте мне знать, как я могу изменить эту команду, чтобы специально получить last 100 строк.
Мне нужно получить последние 100 строк журналов из файла журнала. Я попробовал команду sed
sed -n -e '100,$p' logfilename
Пожалуйста, дайте мне знать, как я могу изменить эту команду, чтобы специально получить last 100 строк.
Вы можете использовать команду tail следующим образом:
tail -100 <log file> > newLogfile
Теперь последние 100 строк будут присутствовать в newLogfile
РЕДАКТИРОВАТЬ:
Более поздние версии tail, упомянутые командой twalberg use:
tail -n 100 <log file> > newLogfile
Посмотрите, скрипт 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
"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>
Я знаю, что это очень старо, но, кому бы это ни помогло.
less +F my_log_file.log
это просто основа, с меньшими затратами вы можете делать гораздо более мощные вещи. как только вы начнете просматривать журналы, вы сможете выполнять поиск, переходить к номеру строки, искать шаблон, и многое другое, плюс это быстрее для больших файлов.
это как VIM для журналов [полностью мое мнение]
Оригинал меньше документации: https://linux.die.net/man/1/less
меньше чит-листа: https://gist.github.com/glnds/8862214
len='cat filename | wc -l'
len=$(( $len + 1 ))
l=$(( $len - 99 ))
sed -n "${l},${len}p" filename
в первой строке берется длина (общее количество строк) файла, затем +1 в итоговых строках, после чего мы должны собрать 100 записей, поэтому -99 из общей длины затем просто положить переменные в команде sed, чтобы получить последние 100 строк. из файла
Я надеюсь, что это поможет вам.