#!/bin/bash#shell声明
b=`ls *.txt` #列出当前目录下所有log结尾的文件
for log in $b #循环每一个log文件
do
b=`awk 'END{print NR}' $log` #获取当前循环文化最后一行的行号
for i in `seq $b` #循环多少次,一行循环一次
do
ybs=`cat $log |grep 2222 |awk -v bl=$i -F'|' 'NR==bl{print $12 - $13}'` #grep出当前文件带2222的信息,然后awk定义当前行号为bl,以|为分隔符,然后输出$12减去$13的和
userid=`cat $log|grep 2222|awk -v bl=$i -F'|' 'NR==bl{print $6}'` #大致同上,只是输出userid字段
username=`cat $log|grep 2222|awk -v bl=$i -F'|' 'NR==bl{print $7}'` #大致同上,只是输出username字段
echo "$userid $ybs $username" >> /tmp/test/info.txt #将他们输出到info.txt文件中,这样就获取到了所有符合条件的userid,ybs,username
done
done
for log in $b #循环每一个log文件
do
b=`awk 'END{print NR}' $log` #获取当前循环文化最后一行的行号
for i in `seq $b` #循环多少次,一行循环一次
do
ybs=`cat $log |grep 2222 |awk -v bl=$i -F'|' 'NR==bl{print $12 - $13}'` #grep出当前文件带2222的信息,然后awk定义当前行号为bl,以|为分隔符,然后输出$12减去$13的和
userid=`cat $log|grep 2222|awk -v bl=$i -F'|' 'NR==bl{print $6}'` #大致同上,只是输出userid字段
username=`cat $log|grep 2222|awk -v bl=$i -F'|' 'NR==bl{print $7}'` #大致同上,只是输出username字段
echo "$userid $ybs $username" >> /tmp/test/info.txt #将他们输出到info.txt文件中,这样就获取到了所有符合条件的userid,ybs,username
done
done
b=`cat /tmp/test/info.txt |sort -k 1,1 -u |awk '{print $1}'` #获取所有玩家去重后的id
for i in $b #循环每一个玩家
do
zybs=`cat /tmp/test/info.txt |grep $i |awk -v bl=0 '{bl=bl+$2} END {print bl}'` #计算出每一个玩家花费元宝的总数
name=`cat /tmp/test/info.txt |grep $i |awk '{print $3}'|uniq` #通过id查找到玩家的昵称
echo $i $zybs $name >> /tmp/test/info_2.txt #将玩家id,昵称,消费元宝总数输出到info_2.txt文件中
done
for i in $b #循环每一个玩家
do
zybs=`cat /tmp/test/info.txt |grep $i |awk -v bl=0 '{bl=bl+$2} END {print bl}'` #计算出每一个玩家花费元宝的总数
name=`cat /tmp/test/info.txt |grep $i |awk '{print $3}'|uniq` #通过id查找到玩家的昵称
echo $i $zybs $name >> /tmp/test/info_2.txt #将玩家id,昵称,消费元宝总数输出到info_2.txt文件中
done