perl – 有状态尾(仅显示上次执行的新行)

前端之家收集整理的这篇文章主要介绍了perl – 有状态尾(仅显示上次执行的新行)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我希望能够看到自上次查询以来没有再次读取整个文件文件添加了多少行.

就像是 :

ptail my_file | fgrep "[ERROR]" | wc -l

简单的Perl解决方案是首选,因为我没有轻松访问编译器.

解决方法

虽然它为了其他目的而消耗了这些行,但我之前编写的代码基本上都是这样做的.

您需要做的就是在尾部完成后记录每个文件的字节偏移(使用tell)和inode(使用stat).下次对文件运行时,首先再次检查inode(带stat).如果inode已更改或文件小于记录的偏移量,则它是一个不同的文件(删除并重新创建,日志被旋转等),因此您应该从头开始显示它;否则,寻找记录的偏移并从那里显示它.

猜你在找的Perl相关文章