请教各位高手一个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
也就是按时间分组,输出个数
...全文
120 点赞 收藏 8
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
张仁阳 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一把就可以了吧
回复
相关推荐
发帖
系统维护与使用区
创建于2007-08-27

1.9w+

社区成员

系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
申请成为版主
帖子事件
创建了帖子
2013-05-08 11:31
社区公告
暂无公告