在打印n行之后以tail -f结尾


10

我有以下几点。

  1. 一个Java进程在文件上写入日志
  2. 一个启动Java进程的shell脚本。

启动Java进程后,我需要阅读日志文件以检查启动是否正确。

我尝试过,tail -f但它永远附加。我需要tail在打印n行之后停止。上一条-n线有一种类似的选择吗?


1
Shell脚本运行Java进程后,每次都会清除日志文件吗?
c0rp 2014年

我使用带有附加模式的log4j来写入日志文件。文件尺寸增加到10MB后旋转。
theShadow89

Answers:


24

您可以通过管道tail -f传输head到,以限制显示的行数:

tail -f [PATH] | head -n 100

总共只显示100行。


7

仅换行

使用plain时tail -f,前10行来自文件,因为它已经存在:

tail -f file.log | head -30

log.txt在运行时写入10行,以后再添加20(n-10)行。

对于日志文件,通常使用-f--follow)查看以后编写的行。

要仅查看tail开始写入后的30行,请将初始输出限制为0:

tail -f -n0 file.log | head -30
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.