Is awk the fastest way to search for a date/time range in a log file?
我正在尝试创建一个脚本,该脚本将搜索在日志文件中特定时间/日期范围之间发生的日志行。
我尝试使用此页面中的解决方案:
根据日期范围过滤日志文件条目
该解决方案可以正常工作,但是需要一些时间才能完成。还有其他方法可以更快地产生结果吗?在这种情况下,我不是关于速度的OCD,只是我正在搜索一些每个包含数GB数据的syslog文件,因此,如果我可以节省一些时间进行搜索,那就太好了。我想到了带有正则表达式的Grep,但是我不确定这是否会带来很大的改变。
以下是日志文件中使用的日志格式:
2014-12-31T23:59:33-05:00设备日志数据
行已排序,因此可以使用look命令。它应该比
如果您确实在寻找性能优化的解决方案,那么您将忘记处理整个日志文件的工具。我希望日志文件按时间排序,因此您无需扫描整个文件。您可以编写一个简单的脚本/程序并实现二分法来查找时间间隔边界,然后打印介于两者之间的所有内容。
fgrep不使用正则表达式的日期可能会更快
https://unix.stackexchange.com/questions/88503/using-grep-or-awk
https://davidlyness.com/post/the-functional-and-performance-differences-of-sed-awk-and-other-unix-parsing-utilities