2

我正在做一个项目,需要帮助弄清楚如何完成一项任务。我将得到一个日志文件,我需要解析并计算某事在某一分钟发生的次数。

例如,如果我有一个 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)发生的次数。发生。我只需要分钟,而不是秒(第二列的最后两位数)最终我想要一个日志/txt 文件,上面写着:

0606 2212 3
0606 2213 1

等等....

如果有人有任何想法,我有点脑子放屁。先感谢您!

4

1 回答 1

2

你可以在 awk one liner 中得到这个:

awk '{mm=substr($4, 1, 4); cnt[$3 " " mm]++} END{for(a in cnt) print a " " cnt[a]}' Text.log

现场演示:http: //ideone.com/w2h64d

于 2013-06-07T18:32:12.023 回答