- 论坛徽章:
- 0
|
另一个实现
增强了对输入数据格式支持,以及输出样式控制:
function echo_result(date,NUM,QUOTE){
printf "\n%-15s",date;
for(i=0 ; i<length(NUM) ;i+=1 ){
qu=QUOTE[NUM];
if(qu>0)
printf "%-15.2f ",qu;
else
printf "%-16s","NAN";
}
}
begin{
c=0;
}
{
if($1==date || NR==1)
{
if(c==0){
NUM[NR-1]=$2;
}
}else{
c++;
if(c==1){
printf "%-15s","quote";
for(i=0 ; i<length(NUM) ;i+=1 ){
printf "%-15s ",NUM;
}
}
echo_result(date,NUM,QUOTE);
delete QUOTE;
}
QUOTE[$2]=$3;
date=$1;
}
END{
echo_result(date,NUM,QUOTE);
}
执行:
awk -F'\' -f quote.awk quote.dat
输入quote.dat:
20080525|0600|758836152.12
20080525|0602|609000.00
20080525|0603|2666746080.44
20080525|0604|1400500000.00
20080525|0605|380000000.00
20080525|0606|356894829.48
20080526|0603|2666746080.42
20080526|0602|609000.05
20080526|0604|1400500000.07
20080526|0605|380000000.09
20080526|0606|356894829.41
输出:
quote 0600 0602 0603 0604 0605 0606
20080525 758836152.12 609000.00 2666746080.44 1400500000.00 380000000.00 356894829.48
20080526 NAN 609000.05 2666746080.42 1400500000.07 380000000.09 356894829.41 |
|