查看文件的实时日志,仅回显符合特定条件的行

时间:2017-06-22 13:55:33

标签: linux bash macos unix

好吧,假设我有一个名为system.log的文件,在这个文件中有数千行日志。

在这些内容中,有几行我想看。

Jun 20 18:28:54 Wills-MacBook-Pro SpringBoard[75216]: MyApp 
initialized.
Jun 20 18:28:54 Wills-MacBook-Pro SpringBoard[75216]: MyApp error on 
line 2

我想在控制台中看到它们,但不是

Jun 20 18:28:54 Wills-MacBook-Pro SpringBoard[75216]: SomethingElse initialized.

有点像

tail -f system.log (echo if MyApp in line)

这样的事情可能吗?

3 个答案:

答案 0 :(得分:1)

是的,只需通过grep命令管道。

tail -f system.log | grep MyApp

答案 1 :(得分:1)

除了此处的其他答案外,我建议您使用multitail。 它很直观。

以下是我如何使用它过滤掉感兴趣的行并将它们附加到新的日志文件

multitail -e "MyApp" system.log

-e用于正则表达式,后跟标准。

此外,您只需添加追加标记即可将所有匹配项保存到新文件中。

multitail -a append_to_new_file.log -e "MyApp" system.log

Here's the man page for more info 你可以找到更多例子here

答案 2 :(得分:0)

  

在这些行中有几行我想看

然后你不应该使用tail命令,因为它只输出最后10行。 溶胶是

cat system.log | grep MyApp

一个简单的grep流水线操作就可以了。