打印 n 行后结束 tail -f

the*_*w89 11 command-line bash tail

我有以下内容。

  1. 将日志写入文件的 Java 进程
  2. 启动 Java 进程的 shell 脚本。

我需要在启动 Java 进程后读取日志文件以检查正确启动。

我尝试过,tail -f但它永远保持追加。tail打印 n 行后我需要停止。-npreviuos 行有类似选项的方式吗?

Dav*_*ter 24

您可以通过管道输出tail -ftohead来限制显示的行数:

tail -f [PATH] | head -n 100
Run Code Online (Sandbox Code Playgroud)

总共只显示 100 行。


Vol*_*gel 7

仅新行

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

tail -f file.log | head -30
Run Code Online (Sandbox Code Playgroud)

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

对于日志文件,您通常使用-f( --follow) 来查看将来写入的行。

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

tail -f -n0 file.log | head -30
Run Code Online (Sandbox Code Playgroud)