我正在尝试在日志文件中查找缺失的日期。从本质上讲,我有2个输入文件,一个“事件列表”和“事件日志”看起来像这样:使用AWK查找日志中的缺失日期
eventlist
EV01 Event number one
EV02 Event number two
eventlog
2014-09-14 EV01
2014-09-16 EV01
2014-09-20 EV01
2014-09-21 EV01
2014-09-22 EV01
2014-09-23 EV01
2014-09-24 EV01
2014-09-25 EV01
2014-09-14 EV02
2014-09-22 EV02
2014-09-23 EV02
2014-09-24 EV02
2014-09-25 EV02
我想看到的连续天数(从今天),我有事件日志记录。根据上述文件,我想下面的输出:
6 Event number one
4 Event number two
到目前为止,我有下面的脚本,但它返回我为每个事件发生计数:
awk 'NR==FNR { a[$1]=$0; next }{print $1,a[$2]}' eventlist eventlog | awk '{print substr($0, index($0, $3))}' | awk -F, '!z[$1]++{ a[$1]=$0; } END {for (i in a) print z[i], a[i]}'
目前这回报:
8 Event number one
5 Event number two
我如何能修改上面给我的连续天数(到今天为止),而不是总数任何想法?
嗨格伦 - 谢谢你的答案。这很好。你介意走这个,所以我可以关注?我已经接受了解决方案,只是想确保我理解它的工作原理。 – armohan 2014-09-26 10:47:05
我不介意,但首先有没有**你不明白的**部分? – 2014-09-26 10:56:05
特别是函数后面的2行:NR == FNR {id = $ 1; $ 1 =“”;事件[id] = $ 0;下一个} $ NF!= eid {day = today; eid = $ NF} – armohan 2014-09-26 12:31:57