- 论坛徽章:
- 0
|
bash-3.2$ echo "1 jack 1200406087123
2 tom 1210206087123
3 jack 1210406087000
4 jack 1210406087123
"|gawk 'BEGIN{
#取当月月初对应的毫秒数,存在mm01中
mm01=(mktime(strftime("%Y %m 01 00 00 00"))*1000);
}
{
#print "调试1",$0,strftime("%m%d",$3/1000);
}
#时间在mm01以后(即本月的):
$3>=mm01{
#取当前行的日期值mmdd
mmdd=strftime("%m%d",$3/1000);
# print "调试2",$0,mmdd;
#每天的记录数加一,如果该日期首次出现,则按出现序号记下日期,便于按顺序打印
if(!dayrecord[mmdd]++) daynum[++days]=mmdd;
#每天每人的记录数加一,如果该人是今天第1次出现则该天的人数加1
if(!daymanrecord[mmdd,$2]++)dayman[mmdd]++;
}
END{
#打印每天的人数及记录数,原来没按顺序打印。现在按出现的先后顺序打印;
for (day=1;day<=days;day++){
if (dayrecord[mmdd=daynum[day]])print mmdd,dayman[mmdd],dayrecord[mmdd];
}
}'
0508 1 1
0510 1 2
[ 本帖最后由 zhangshebao 于 2008-5-10 22:05 编辑 ] |
|