我正在嘗試在日誌文件中查找缺失的日期。從本質上講,我有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