我正在做一个项目,需要帮助弄清楚如何完成任务。
我将获得一个日志文件,我需要解析并计算在某一分钟内发生某事的次数。
例如,如果我有一个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
等等....
如果有人有什么想法,我有点脑子发疯了。
先感谢您!
最佳答案
您可以通过awk一线获得:
awk '{mm=substr($4, 1, 4); cnt[$3 " " mm]++} END{for(a in cnt) print a " " cnt[a]}' Text.log
现场演示:http://ideone.com/w2h64d
关于linux - Shell脚本计数字符串的出现,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16990580/