Мені потрібно отримати останні 100 рядків журналів з файлу журналу. Я спробував команду sed
sed -n -e '100,$p' logfilename
Будь ласка, дайте мені знати, як я можу змінити цю команду, щоб конкретно отримати останні 100 рядків.
Мені потрібно отримати останні 100 рядків журналів з файлу журналу. Я спробував команду sed
sed -n -e '100,$p' logfilename
Будь ласка, дайте мені знати, як я можу змінити цю команду, щоб конкретно отримати останні 100 рядків.
Відповіді:
Ви можете використовувати хвостову команду наступним чином:
tail -100 <log file> > newLogfile
Зараз останні 100 рядків будуть присутні в newLogfile
Редагувати:
Більш пізні версії хвоста, як згадує команда використання twalberg :
tail -n 100 <log file> > newLogfile
tail
вимагають синтаксису tail -n 100 <filename>
...
Подивіться, сценарій 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
: /unix/102905/does-tail-read-the-whole-file/102910#102910
"хвіст" - це команда для відображення останньої частини файлу, використання належних доступних комутаторів допомагає нам отримати більш конкретний вихід. найбільш використовуваний для мене перемикач - -n і -f
СИНОПИС
хвіст [-F | -f | -r] [-q] [-b номер | -c номер | -n номер] [файл ...]
Ось
-n номер: Місце розташування - це рядки з номерами.
-f: Опція -f змушує хвіст не зупинятися після досягнення кінця файлу, а швидше чекати, коли до вводу додаються додаткові дані. Параметр -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 рядків з файлу
Я сподіваюся, що це вам допоможе.