【发布时间】:2019-09-08 01:46:26
【问题描述】:
如何仅对文件的“尾部”执行 grep?
我正在尝试运行此命令:
grep 'TEST COMPLETE' -L *.log
TEST COMPLETE 出现在最后几行,此命令列出文件夹中尚未完成测试的所有文件(因为-L)。日志很大,所以grep 很慢。
另一方面,我可以在尾部使用 grep 管道。 grep 几乎是即时的:
tail *.log | grep 'TEST COMPLETE'
但是我不能使用 -l 或 -L 参数,因为我现在正在 grepping 管道输入而不是文件。所以使用列表文件参数运行它:
tail *.log | grep 'TEST COMPLETE' -L
只会输出:(standard input)
有什么方法可以让grep 搜索最后 10 行或类似的内容吗?
【问题讨论】:
-
您是否真的像我们都假设的那样一次在多个日志文件上运行 tail,或者您实际上只是在 1 个日志文件上运行它,但使用
*.log来避免为文件编造名称? -
是的。在太多文件上运行它,无法手动筛选。如果它只是一个文件,我不需要这个命令,因为我可以执行
tail file.log并查看它是否完整。