我正在研究一个项目,需要帮助找出如何完成任务。 我将获得一个日志文件,我需要解析并计算在某一分钟发生的事件的次数。
例如,如果我有一个txt文件:
Line 3: 0606 221241 successfully copied to **
Line 5: 0606 221242 successfully copied to **
Line 7: 0606 221242 successfully copied to **
Line 9: 0606 221342 successfully copied to **
我想知道在2212成功复制了多少次 到目前为止,我有以下代码仅分离已成功复制的行并将日期分开...
grep "successfully copied to" Text.log >> Success.txt
awk '{print ($1, $2)}' Success.txt > datesAndTimes.txt
这给了我
0606 221241
0606 221242
0606 221242
0606 221243
出于某种原因,我无法确定如何计算每个特定时间(例如0606 2212)发生的次数。发生。 我只需要分钟,而不是秒(第二列的最后两位数字) 最终我想要一个log / txt文件,上面写着:
0606 2212 3
0606 2213 1
依旧......
如果有人有任何想法,我会有一点脑屁。 提前谢谢!
答案 0 :(得分:2)
你可以用awk one liner获得这个:
awk '{mm=substr($4, 1, 4); cnt[$3 " " mm]++} END{for(a in cnt) print a " " cnt[a]}' Text.log