我想追蹤一個不斷寫入的日誌文件,但想排除「常見」的各種條目,因此我只看到錯誤等拋出的錯誤。我可以透過管道連接到 grep -v "pattern" 但理想情況下希望使用包含要跳過的條目的檔案。有任何想法嗎?
答案1
你可以grep -v "pattern"
像你說的那樣使用。但不是pattern
使用
`cat file_with_entires_to_skip`
記得要包括後面的內容。所以你的命令看起來像:
tail -v FILE | grep -v "`cat FILE_WITH_ENTRIES_TO_SKIP`"
答案2
選項-f
允許grep
指定包含模式的文件,每行一個模式。請參閱grep(1)
手冊頁。
此外,unbuffer
某些系統上可用的命令將停用通常在管道中發生的輸出緩衝。新增過濾grep
器可能會延遲管道的輸出。有關詳細信息,請參閱unbuffer(1)
手冊頁。
答案3
我的 grep 包含一個--exclude-from=FILE
選項,可讓我從檔案中新增排除模式。我有:
my-macbook-pro:Sun America ianchesal$ grep --version
grep (GNU grep) 2.5.1
所以你可以這樣做:
tail -f <file> | grep --exclude-from=excludes.txt
答案4
嘗試使用:grep -v -f EXCLUDE_FILENAME_LIST TARGET_FILENAME
EXCLUDE_FILENAME_LIST = 您要從搜尋中 grep 的單字清單 TARGET_FILENAME = 您想要 grep 的主文件