shell编程 for 循环提取日志,并awk做统计
日志文件:xx.dat(xx为时间标签)
日志格式:
#startTime xxxx
#username number
admin? 123
testuser 34
admin 3443
...
?
需求:将目录下所有dat内文件按用户累加number 输出
?
机器上有ubuntu,但考虑开发还是用xp,临时装了个cygwin,调试了大半天,发现awk真是强壮,shell真是强壮
?
得到两个命令
?
命令:
1、for file in '*.dat';do awk -F' ' '$1!="#"&&$1!="" {a[$1]+=$2}END {for (i in a) print i" "a[i]}' ${file};done2、cat *.dat|awk -F' ' '$1!="#"&&$1!="" {a[$1]+=$2}END {for (i in a) print i" "a[i]}' ?
?
两种方式均可,但日志1天有200多个,每个5-10M,暂不知两个是否在效率上有不同,有待具体测试。。。
?
?