我的腳本每分鐘讀取一次日誌文件,並選擇(並作用於)時間戳以前一分鐘開始的行。Powershell:從文件末尾向後搜索
這很簡單(正則表達式只是「^ $ timestamp」),但是當日志變大時,可能需要一段時間。
我的想法是我想要的線總是在文件的底部附近,所以如果我從底部開始搜索並向上搜索,我會搜索更少的行,當我到達之前的分鐘時停止搜索我感興趣的一個。
我的問題是,如何從文件底部而不是頂部搜索?我甚至可以說「read line $ length」,甚至是「讀取第n行」(如果是這樣的話,我可以做一個二進制搜索的東西來查找文件的長度並從那裏向後工作)?
最後一個問題:這會更快嗎(即使速度不會更快,我仍然想知道該怎麼做)?
理想情況下,我想在我自己的代碼中完成這一切,而不需要安裝任何額外的東西。
感謝
是的,這幾乎就是我所做的:)(用-1得到最後一分鐘),這只是我在考慮必須讀取所有日誌,直到它達到前一分鐘(OK,所以它只需要每行最多讀取八個字符,但仍然是),這將永遠在底部,所以不會更容易從底線反向讀取,因此讀取的線條少得多。 – mazz0 2012-04-24 09:09:42
檢查我的舊回答大大改善。 – dc5553 2012-04-24 13:14:23
我回答了您的問題嗎? – dc5553 2012-04-25 07:38:55