2017-06-22 57 views
1

好吧,讓我們假設我有一個名爲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) 

是這樣的可能嗎?

回答

1

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

tail -f system.log | grep MyApp 
0

在這些線路是幾行我想看到

然後因爲它僅僅輸出最後10行,你不應該使用tail命令。 的SOLN是

cat system.log | grep MyApp 

一個簡單的grep流水線的伎倆。

+0

貓並不像autoupdating'尾巴-f'是 – Will

+1

'tail'確實比輸出的最後十行等等。 OP想要使用[tail following](https://unix.stackexchange.com/questions/18760/how-does-the-tail-commands-f-parameter-work) – Jedi

+0

@Jedi我知道,OP沒有提及關於其他要求的事情。 – Akash

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