Sur*_*bhi 128 linux logging sed
我需要从日志文件中检索最后100行日志.我尝试了sed命令
sed -n -e '100,$p' logfilename
Run Code Online (Sandbox Code Playgroud)
请让我知道如何更改此命令以专门检索最后 100行.
Ste*_*hen 241
您可以使用tail命令,如下所示:
tail -100 <log file> > newLogfile
Run Code Online (Sandbox Code Playgroud)
现在最后100行将出现在 newLogfile
Aru*_*r N 31
您可以简单地使用以下命令:-
尾部 -NUMBER_OF_LINES FILE_NAME
例如tail -100 test.log
如果您希望将上述输出放在单独的文件中,那么您可以按如下方式进行管道传输:-
尾部 -NUMBER_OF_LINES FILE_NAME > OUTPUT_FILE_NAME
例如tail -100 test.log > output.log
Ser*_*kov 12
看,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
Run Code Online (Sandbox Code Playgroud)
对我而言,这比你的剧本更难
tail -n 100 logfilename
Run Code Online (Sandbox Code Playgroud)
简单得多.它非常有效,如果没有必要,它将无法读取所有文件.请参阅我的回答与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>
Run Code Online (Sandbox Code Playgroud)
我知道这已经很老了,但是,对于任何可能有帮助的人。
less +F my_log_file.log
这只是基本的,用更少的东西你可以做很多更强大的事情。一旦您开始查看日志,您就可以进行搜索、转到行号、搜索模式等等,而且对于大文件来说速度更快。
它就像用于日志的 vim [完全是我的意见]
原始较少的文档:https : //linux.die.net/man/1/less
少备忘单:https : //gist.github.com/glnds/8862214