假設我有一個日誌文件,其中包含描述某些事件的行。例如: -在日誌文件中搜索相關事件
15.03.2014 (14:23) Thing #25 deleted, user @david, session #45
15.03.2014 (15:00) Thing #26 created, user @alex, session #54
...
我可以很容易地提取使用grep
獨立的事件 - 它工作得很好,即使我不知道所有有關事件的信息。
但我想進一步調查相關事件。考慮在日誌下面幾行:
15.03.2014 (14:23) Thing #25 created, user @david, session #45
...
17.03.2014 (15:00) Thing #25 deleted, user @david, session #54
我想搜索Thing #X created, user @Y, session #Z
事件只有當它們被Thing #X deleted, user @Y, session #M
事件,其中M和Z是不同的成功。
當然,我可以在5-10行代碼中執行此操作:搜索第一類事件,取所有後續行,搜索第二類事件,過濾器。
但也許有一些工具,我會重新發明輪子?
謝謝!這是一個好方法,並在O(n)中完成這項工作。但是我想知道是否有工具可以實現這種算法,或者是設計用於處理這種「查詢」的工具。 – madfriend
@madfriend - Perl是最初專爲處理這種類型的文本處理而設計的工具。 「查詢」界面恰好看起來有點像命令式程序:-) –