检索最近的100行日志


Answers:


302

您可以按以下方式使用tail命令:

tail -100 <log file>   > newLogfile

现在最后100行会出现在 newLogfile

编辑:

twalberg提到的tail的最新版本使用命令:

tail -n 100 <log file>   > newLogfile

17
请注意,某些最新版本的tail需要语法tail -n 100 <filename>...
twalberg '16

14

看一下,sed脚本可以打印出sed文档(https://www.gnu.org/software/sed/manual/sed.html#tail)中的最后100行:

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

$ sed -nf sed.cmd logfilename

对我来说,这比您的脚本要困难得多,所以

tail -n 100 logfilename

简单得多。而且它非常有效,如果不需要,它将不会读取所有文件。请参阅我的strace报告答案tail ./huge-filehttps : //unix.stackexchange.com/questions/102905/does-tail-read-the-whole-file/102910#102910


13

“ tail”是显示文件最后部分的命令,使用适当的可用开关有助于我们获得更具体的输出。对我而言,最常用的开关是-n和-f

概要

尾巴[-F | -f | -r] [-q] [-b号| -c号| -n号] [文件...]

这里

-n number:位置是数字行。

-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>

3

我知道这已经很老了,但是对任何人来说都可能有所帮助。

less +F my_log_file.log

那只是基本的,用更少的东西就可以做很多更强大的事情。一旦您开始查看日志,就可以进行搜索,转到行号,搜索模式等等,而且对于大型文件而言,这样做更快。

就像vim记录日志一样[完全是我的看法]

较少的原始文档:https : //linux.die.net/man/1/less

更少的备忘单:https : //gist.github.com/glnds/8862214


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

第一行取文件的长度(总行),然后在总行中加+1,之后我们必须添加100条记录,因此总长度为-99,然后将变量放在sed命令中以从文件中获取最后100行

我希望这能帮到您。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.