【发布时间】:2014-06-24 11:14:25
【问题描述】:
这可能不是执行以下操作的最佳方法,因此感谢任何 cmet。
我目前正在跟踪一些日志文件并将它们输出到屏幕上,以便快速了解系统。
我想做的是突出显示不同的消息[INFO]、[WARN] 和[ERROR]
以下语法在命令行上运行良好,但从 Perl 调用时失败
system ("tail -n 5 $ArchiverLog | awk '{if ($4 ~ /DEBUG/)print "\033[1;33m"$0"\033[0m"; else if ($6 ~ /ERROR/) print "\033[1;31m"$0"\033[0m"; else print $0}'");
我相信 Perl 可以做到这一点
我是否应该逐行读取文件,匹配单词并打印到屏幕上(我只想要最后 10 行)。这是更好的选择吗?
我还看到了对a2p 的引用,它是一个 awk 到 Perl 的翻译器。那会是人们的首选吗?
【问题讨论】:
-
你应该看看
File::Tail模块。或者Tail::Tool更高级,可以让你同时跟踪多个文件 -
请显示您的 Perl 代码的其余部分,以便我们可以在上下文中看到您需要的内容。你的日志文件的样本会很好
-
还没有学习模块以及它们是如何工作的......
-
或许你应该看看?每个模块都是不同的,并且在CPAN 上都有自己的文档,您必须在使用它之前阅读这些文档。但大多数模块要么提供你可以使用的新功能(子程序),要么提供面向对象的接口
标签: perl