perl – 有状态尾(仅显示上次执行的新行)
发布时间:2020-12-16 06:28:29 所属栏目:大数据 来源:网络整理
导读:我希望能够看到自上次查询以来没有再次读取整个文件的文件中添加了多少行. 就像是 : ptail my_file | fgrep "[ERROR]" | wc -l 简单的Perl解决方案是首选,因为我没有轻松访问编译器. 解决方法 虽然它为了其他目的而消耗了这些行,但我之前编写的代码基本上都
我希望能够看到自上次查询以来没有再次读取整个文件的文件中添加了多少行.
就像是 : ptail my_file | fgrep "[ERROR]" | wc -l 简单的Perl解决方案是首选,因为我没有轻松访问编译器. 解决方法
虽然它为了其他目的而消耗了这些行,但我之前编写的代码基本上都是这样做的.
您需要做的就是在尾部完成后记录每个文件的字节偏移(使用tell)和inode(使用stat).下次对文件运行时,首先再次检查inode(带stat).如果inode已更改或文件小于记录的偏移量,则它是一个不同的文件(删除并重新创建,日志被旋转等),因此您应该从头开始显示它;否则,寻找记录的偏移并从那里显示它. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |