- 论坛徽章:
- 10
|
本帖最后由 liion631818 于 2013-09-01 00:56 编辑
- awk -F"[ |\t|-]*" '
- BEGIN{
- size=0
- day=24*60*60
- }
- {
- size=(size<length($1"-"$2"-"$3)?length($1"-"$2"-"$3):size)
-
- time = mktime(sprintf("%04d %02d %02d 0 0 0", $3, $2, $1))
- table[time,$4]=$5
- col[$4]++
- if(NR==1)
- {
- max = min = time
- }
- else if(time>max)
- {
- max = time
- }
- else if(time<min)
- {
- min = time
- }
-
- }
- END{
- cols=asorti(col, csort)
- for(t=min-day;t<=max;t+=day)
- {
- fmt=sprintf("%%-%ds", size);
-
- r=strftime("%d-%m-%Y", t)
- printf(fmt, t==min-day?" ":r)
- for(c=1;c<=cols;c++)
- {
- if(t==min-day)
- printf("%5s", csort[c]);
- else
- printf("%5s",(table[t,csort[c]]>0?table[t,csort[c]]:0))
- }
- print "\n"
- }
- }
- ' 1.txt
复制代码
|
|