Logs
將 multitail 的過濾應用於通過萬用字元傳遞的許多文件
multitail
有一個很好的基於正則表達式的過濾機制,在手冊頁和線上手冊中有描述。兩個來源都聲明可以使用-ev
開關從輸出中排除與給定正則表達式匹配的日誌行:multitail -ev "ignorelinescontainingthis" /var/log/whatever.log -ev "alsoignorethis" /var/log/another.log
但是,這似乎不適用於過濾使用萬用字元傳遞的許多日誌文件:
multitail -ev "thisdoesntwork" /var/log/myservice*.log
有沒有辦法讓它工作?
出於分析目的,我嘗試了
-ec
開關(突出顯示正則表達式匹配),結果發現過濾器僅應用於萬用字元列表中的第一個文件,但沒有應用於其他文件。
將我的評論變成答案。
的手冊頁
multitail
定義-e
選項如下:
-e
對以下文件 使用下一個正則表達式。所以正則表達式過濾器只適用於緊隨其後的文件。使用 shell glob 時,這將導致過濾器僅應用於擴展文件列表中的第一個文件。
要在所有文件中應用正則表達式過濾器,
-E
必須改用該選項:
-E
對以下文件 使用下一個正則表達式。該
-v
選項否定指定的正則表達式,對於這些選項中的任何一個都應該以相同的方式工作。