我有一個很大的日誌文件,我試圖掃描它的特定單詞。一般來說,我會用幾句話來說明我的大日誌文件,並打印出包含這些單詞的行。如何grep在日誌文件中包含特定單詞的行?
我知道如何在文件上執行簡單的grep。假設如果我的文件名是abc.log
,我需要找到一個包含單詞「hello」的行,那麼我總是這樣做,它會爲我打印出行。
grep -i "hello" abc.log
但我不知道如何做的單詞組合grep。這意味着我會列出單詞,我將掃描我的abc.log文件中的所有單詞,然後我將單獨列出包含這些單詞的行。
#!/bin/bash
data="hello,world,tester"
# find all the lines which contains word hello or world or tester
所以在我上面的shell腳本我會分裂我的數據變量和abc.log所以它包含你好字的任何行找你好的話,我將與世界試驗機打印出來,同樣也是如此。
我想使這個非常通用,以便我只需要添加我的數據變量中的單詞列表,而不必觸及對日誌進行格式化的實際邏輯。
感謝o11c。在我的情況下,模式可能會增長很多,所以文件方法很好,但我想在此添加一件事 - 如果包含特定單詞,請不要打印出該行。我將如何用你目前的方法來做到這一點? – john 2014-10-10 04:51:20
@ user2809564通過'grep -v wordtoexclude'(或'-e'或'-f'等)管理第一個'grep' – o11c 2014-10-10 04:54:28
謝謝。有可能我可以有多種模式以便排除,所以有什麼辦法可以讓一個文件包含模式來排除,然後使用這個文件來執行grep? – john 2014-10-10 05:01:00