读书人

高手一个shell

发布时间: 2013-06-26 14:29:32 作者: rapoo

请教各位高手一个shell
数据
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
也就是按时间分组,输出个数
[解决办法]

引用:
看到过一个贴子
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: 引用:


看到过一个贴子
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]}'

非常好,谢谢了。只是这个左边的时间是无序的。如果能按时间顺序来排就更完美了。

在awk之前先sort一把就可以了吧
[解决办法]
$ awk '{a[$1" "$2]++}END{for(i in a)print i,a[i]}' 1.txt
[解决办法]
给你另一个方法,丰富一下:cut -d ' ' -f 1-2 data.txt
[解决办法]
uniq -c


[解决办法]
awk '{print $2" "$3" "$1}'
[解决办法]
排序


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

读书人网 >UNIXLINUX

热点推荐