我的脚本每分钟读取一次日志文件,并选择(并作用于)时间戳以前一分钟开始的行。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