我需要从日志文件中检索最后100行日志。 我尝试了sed命令
sed -n -e '100,$p' logfilename
请告诉我如何更改此命令以专门检索最后100行。
我需要从日志文件中检索最后100行日志。 我尝试了sed命令
sed -n -e '100,$p' logfilename
请告诉我如何更改此命令以专门检索最后100行。
当前回答
“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>
其他回答
您可以简单地使用以下命令:-
-NUMBER_OF_LINES文件名称
例如tail -100 test.log
将从test.log中获取最后100行
在这种情况下,如果你想在一个单独的文件中输出上述输出,那么你可以像下面这样管道
tail -NUMBER_OF_LINES FILE_NAME >输出文件名称
例如tail -100 test.log > output.log
将从test.log中获取最后100行,并将它们存储到一个新的文件output.log中)
tail命令的使用方法如下:
tail -100 <log file> > newLogfile
现在最后100行将出现在newLogfile
编辑:
twalberg提到的tail的最新版本使用命令:
tail -n 100 <log file> > newLogfile
看,sed脚本打印您可以在sed文档中找到的最后100行(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
简单得多。这是相当有效的,它将不读取所有文件,如果不是必要的。看到我的答案与尾部的strace报告。/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
无作弊标签:https://gist.github.com/glnds/8862214