【发布时间】:2021-01-19 07:43:02
【问题描述】:
我正在尝试获取日志文件的最后几行,我环顾四周,发现tail -f /path/to/file.log | sed '/^MYSTRING/ q' 是一种常用的方式!
但是这个获取数据直到它发现它匹配,而不是向后。
让我解释一下;
日志文件:(只是示例,不是实际日志;)
Donald
Duck
Cat
Dog
MYSTRING
animal
fish
ape
上面的代码会输出;
Donald
Duck
Cat
Dog
MYSTRING
但我想要最后一个 MYSTRING 之后的日志文件中的最后一个(是的,那里可能有一些我,这就是我需要向后执行此操作的原因),
animal
fish
ape
【问题讨论】:
-
MYSTRING后面要多少行? -
一般
tail -f用于监控增长日志文件。如果是这样,我们无法确定日志文件的最后几行。还是您只想打印静态(非增长)日志文件的指定模式之后的行? -
@pynexj 从文件末尾到第一个 MYSTRING(向后)
-
@AdamLarsson :您基本上希望在遇到 MYSTRING 之后开始显示日志文件,然后继续显示它,同时进程写入文件它还在产生日志输出吗?
-
@adam right
tail知道文件的结尾,但问题是tail -f在到达 eof 时不会退出。相反,它会等待文件增长并继续打印新行。