检索最近100行日志

我需要从日志文件中检索最后100行日志。 我尝试了sed命令

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

请让我知道我如何改变这个命令,以具体检索最后的 100行。

625552 次浏览

尾巴命令的使用方法如下:

tail -100 <log file>   > newLogfile

现在最后100行将出现在newLogfile

编辑:

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

tail -n 100 <log file>   > newLogfile

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

我知道这很古老了,但是,不管对谁有帮助。

less +F my_log_file.log

这只是最基本的,用更少的钱你可以做很多更强大的事情。一旦你开始看到日志,你可以做搜索,去行号,搜索模式,更多的加上它是更快的大文件。

这就像vim for log(完全是我的观点)

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

less cheatsheet: 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命令中,从file

中获取最后100行

我希望这对你有所帮助。

您可以简单地使用以下命令:-

-NUMBER_OF_LINES文件名称

tail -100 test.log

  • 将从test.log中获取最后100行

在这种情况下,如果你想在一个单独的文件中输出上述输出,那么你可以像下面这样管道

-NUMBER_OF_LINES文件名>OUTPUT_FILE_NAME

tail -100 test.log > output.log

  • 将从test.log中获取最后100行,并将它们存储到一个新的文件output.log中)