我必须计算log4j文件中出现的某些字符串的出现次数。我有一个开始日期,我想在测试期间从Java类开始grep
(可能是sed
或awk
?)。
即使我不知道从Runtime.getRuntime().exec(...)
命令捕获grep结果与读取和解析(通过正则表达式和字符串操作)当前log4j文件是否更好,我不知道#39;知道如何grep
这样的文件:
2016-07-29 15:13:08,725: INFO [main] .....
2016-07-29 15:13:08,817: INFO [main] ....
2016-07-29 15:13:08,901: INFO [main] ...
但仅限于2016-07-29 15:13:08,818
之后
提前致谢!
答案 0 :(得分:0)
如果你有一个完全匹配你想要除以输出,根据another question here你可以使用sed只输出该时间戳之后和之后的行。找到要打破的完全匹配可能意味着逐步使您的时间戳更宽松,例如删除最后一个字符,直到你得到一个匹配/匹配,然后解析那些匹配,以决定哪个是第一个匹配。
如果你想在bash中这样做,请考虑this question;专门将日期转换为unix时间戳,然后比较结果值。其余的应该是直截了当的;同样在Java中,提取日期并比较它们不应该太具有挑战性。除非您拥有学习经验的带宽,否则请使用您更熟悉的语言。