请教各位高手一个shell

张仁阳 2013-05-08 11:31:39
数据
2013-05-08 11:11:44 [com.interceptor.DynamicDataSourceInterceptor]-[ERROR] accessurl: http://
2013-05-08 11:11:44 [com.interceptor.DynamicDataSourceInterceptor]-[ERROR] accessurl: http://
2013-05-08 11:11:44 [com.interceptor.DynamicDataSourceInterceptor]-[ERROR] accessurl: http://
2013-05-08 11:11:44 [com.interceptor.DynamicDataSourceInterceptor]-[ERROR] accessurl: http://
2013-05-08 11:11:44 [com.interceptor.DynamicDataSourceInterceptor]-[ERROR] accessurl: http://
2013-05-08 11:11:44 [com.interceptor.DynamicDataSourceInterceptor]-[ERROR] accessurl: http://
2013-05-08 11:11:44 [com.interceptor.DynamicDataSourceInterceptor]-[ERROR] accessurl: http://
2013-05-08 11:11:44 [com.interceptor.DynamicDataSourceInterceptor]-[ERROR] accessurl: http://
2013-05-08 11:11:44 [com.interceptor.DynamicDataSourceInterceptor]-[ERROR] accessurl: http://
2013-05-08 11:11:45 [com.interceptor.DynamicDataSourceInterceptor]-[ERROR] accessurl: http://
2013-05-08 11:11:45 [com.interceptor.DynamicDataSourceInterceptor]-[ERROR] accessurl: http://
2013-05-08 11:11:45 [com.interceptor.DynamicDataSourceInterceptor]-[ERROR] accessurl: http://
2013-05-08 11:11:45 [com.interceptor.DynamicDataSourceInterceptor]-[ERROR] accessurl: http://

我需要的结果是这样的
2013-05-08 11:11:44 9
2013-05-08 11:11:45 4
也就是按时间分组,输出个数
...全文
142 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
张仁阳 2013-07-01
  • 打赏
  • 举报
回复
cat /data/nginx_log/terminal.access.log.20130624 | grep earch | awk -F" " '{a[$4]+=1} END {for(i in a) print i"="a[i]}'|sort
ljc007 2013-05-09
  • 打赏
  • 举报
回复
排序

awk -F'[' '{a[$1]++}END{for(i in a) print i,a[i]}' urfile | sort -k1,2
awk -F'[' '{a[$1]++}END{for(i in a) print i,a[i]}' urfile | sort -rk1,2
张仁阳 2013-05-08
  • 打赏
  • 举报
回复
引用 2 楼 Mr_Ringht 的回复:
[quote=引用 1 楼 hongqishi 的回复:] 看到过一个贴子 a 200 123 a 12 32 a 32 3 b 1200 aaa b 1 22 b 22 22 c 333 333 d 222 333 awk '{a[$1]+=$2}END{for(i in a)print i,a[i]}' data.log
没问题啊,你的问题也可以这样解决
awk -F"[" '{a[$1]+=1}END{for(i in a) print i,a[i]}'
[/quote] 非常好,谢谢了。只是这个左边的时间是无序的。如果能按时间顺序来排就更完美了。
linux-c 2013-05-08
  • 打赏
  • 举报
回复
引用 1 楼 hongqishi 的回复:
看到过一个贴子 a 200 123 a 12 32 a 32 3 b 1200 aaa b 1 22 b 22 22 c 333 333 d 222 333 awk '{a[$1]+=$2}END{for(i in a)print i,a[i]}' data.log
没问题啊,你的问题也可以这样解决
awk -F"[" '{a[$1]+=1}END{for(i in a) print i,a[i]}'
张仁阳 2013-05-08
  • 打赏
  • 举报
回复
看到过一个贴子 a 200 123 a 12 32 a 32 3 b 1200 aaa b 1 22 b 22 22 c 333 333 d 222 333 awk '{a[$1]+=$2}END{for(i in a)print i,a[i]}' data.log
qq120848369 2013-05-08
  • 打赏
  • 举报
回复
给你另一个方法,丰富一下:cut -d ' ' -f 1-2 data.txt | uniq -c | awk '{print $2" "$3" "$1}'
Linux-Torvalds 2013-05-08
  • 打赏
  • 举报
回复
$ awk '{a[$1" "$2]++}END{for(i in a)print i,a[i]}' 1.txt
linux-c 2013-05-08
  • 打赏
  • 举报
回复
引用 3 楼 hongqishi 的回复:
[quote=引用 2 楼 Mr_Ringht 的回复:] [quote=引用 1 楼 hongqishi 的回复:] 看到过一个贴子 a 200 123 a 12 32 a 32 3 b 1200 aaa b 1 22 b 22 22 c 333 333 d 222 333 awk '{a[$1]+=$2}END{for(i in a)print i,a[i]}' data.log
没问题啊,你的问题也可以这样解决
awk -F"[" '{a[$1]+=1}END{for(i in a) print i,a[i]}'
[/quote] 非常好,谢谢了。只是这个左边的时间是无序的。如果能按时间顺序来排就更完美了。[/quote] 在awk之前先sort一把就可以了吧

19,620

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧