从汇率网站 http://www.fxstreet.com/forex-tools/rate-history-tools/?tf=1d&period=1521&pair=usdcny
copy的原始格式数字保存在usdcny_From2007.data,共1521条记录
[root@] ~]# head -4 usdcny_From2007.data
Date Open High Low Close
Tue, Oct 30 2012 6.2447 6.2450 6.2446 6.2446
Mon, Oct 29 2012 6.2530 6.2662 6.2398 6.2446
Fri, Oct 26 2012 6.2437 6.2627 6.2437 6.2627
[root@] ~]#
[root@] ~]# cat usdcny_From2007.data | wc -l
1522
[root@] ~]# cat format.sh
#!/bin/sh
# 1 2 3 4 5_O 6_H 7_L 8_C
# FROM ----- Mon, Jan 01 2007 7.8185 7.8185 7.8115 7.8185
#
# T O ----- 7.8115 2007_Jan_01____7.8115
#
awk -F' ' \
'{
if (NF == 8)
{
VAL=length($7);
if(VAL == 1)
print $7".0000 "$4"_"$2"_"$3"____"$7".0000";
else if(VAL == 3)
print $7"000 "$4"_"$2"_"$3"____"$7"000";
else if(VAL == 4)
print $7"00 "$4"_"$2"_"$3"____"$7"00";
else if(VAL == 5)
print $7"0 "$4"_"$2"_"$3"____"$7"0";
else
print $7" "$4"_"$2"_"$3"____"$7;
}
}' usdcny_From2007.data
[root@] ~]#
[root@] ~]# sh format.sh > usdcny_From2007_Lowest.data
[root@] ~]#
[root@] ~]# head -2 usdcny_From2007_Lowest.data
6.2446 2012_Oct_30____6.2446
6.2398 2012_Oct_29____6.2398
[root@] ~]#
[root@] ~]# tail -3 usdcny_From2007_Lowest.data
7.8135 2007_Jan_03____7.8135
7.8160 2007_Jan_02____7.8160
7.8115 2007_Jan_01____7.8115
[root@] ~]#
[root@] ~]# cat usdcny_From2007_Lowest.data | wc -l
1521
[root@] ~]# cat sort_by_lowest.sh
#!/bin/sh
CMP_FLAG=1
SHOW_FLAG=0
VAL=7.8115
if [ $# -eq 2 ];then
echo "input file is "$1" and the default compile val is "$2""
VAL=$2
echo VAL=$VAL
else
echo "USAGE : $0 FILE_NAME CMP_VAL"
exit -1
fi
#
# Other method of read files with reverse sequence
#
# sed -n '1!G;h;$p' urfile VS tac
#
for i in `tac $1`;
do
if [ $CMP_FLAG -eq 1 ];then
CMP_FLAG=0;
#
# How to compare float data in BASH
#
# Method 1: echo 123.45 123.44 | awk '{if($1>$2){printf"%f greater then %f\n",$1,$2}else{printf"%f less then %f\n",$1,$2}}'
# Method 2: or use command let: A=1;B=4;let "C=A+B";echo $C # but only works with integer data
# Method 3: echo " 123.45 > 123.44" | bc
#
if [ `echo "$i < $VAL" | bc` -eq 1 ];then # For Lowest record
VAL=$i
SHOW_FLAG=1;
fi
else
CMP_FLAG=1;
if [ $SHOW_FLAG -eq 1 ];then
SHOW_FLAG=0;
#7.7260 2007_Mar_22____7.7260
len=`expr length $VAL`;
if [ $len -eq 1 ];then
echo $VAL".0000 "$i".0000";
elif [ $len -eq 3 ];then
echo $VAL"000 "$i"000";
elif [ $len -eq 4 ];then
echo $VAL"00 "$i"00";
elif [ $len -eq 5 ];then
echo $VAL"0 "$i"0";
else
echo $VAL" "$i;
fi
fi
fi
done
[root@] ~]#
[root@] ~]# sh sort_by_lowest.sh usdcny_From2007_Lowest.data
USAGE : sort_by_lowest.sh FILE_NAME CMP_VAL
[root@] ~]#
[root@] ~]# time sh sort_by_lowest.sh usdcny_From2007_Lowest.data 7.8115 > usdcny_From2007_Lowest_new.data
real 0m10.247s
user 0m0.401s
sys 0m9.842s
[root@] ~]#
[root@] ~]# cat usdcny_From2007_Lowest_new.data
input file is usdcny_From2007_Lowest.data and the default compile val is 7.8115
VAL=7.8115
7.8030 2007_Jan_04____7.8030
7.7965 2007_Jan_11____7.7965
7.7948 2007_Jan_12____7.7948
7.7925 2007_Jan_15____7.7925
7.7880 2007_Jan_16____7.7880
7.7750 2007_Jan_17____7.7750
7.7705 2007_Jan_18____7.7705
7.7680 2007_Jan_25____7.7680
7.7552 2007_Feb_01____7.7552
7.7550 2007_Feb_02____7.7550
7.7470 2007_Feb_07____7.7470
7.7405 2007_Feb_09____7.7405
7.7395 2007_Feb_16____7.7395
7.7345 2007_Feb_27____7.7345
7.7100 2007_Mar_01____7.7100
7.7039 2007_Apr_30____7.7039
7.6939 2007_May_08____7.6939
7.6935 2007_May_09____7.6935
7.6766 2007_May_11____7.6766
7.6715 2007_May_14____7.6715
7.6705 2007_May_17____7.6705
7.6680 2007_May_18____7.6680
7.6625 2007_May_21____7.6625
7.6525 2007_May_22____7.6525
7.6480 2007_May_23____7.6480
7.6450 2007_May_28____7.6450
7.6385 2007_Jun_05____7.6385
7.6342 2007_Jun_06____7.6342
7.6260 2007_Jun_13____7.6260
7.6205 2007_Jun_14____7.6205
7.6200 2007_Jun_18____7.6200
7.6175 2007_Jun_19____7.6175
7.6160 2007_Jun_20____7.6160
7.6159 2007_Jun_26____7.6159
7.6155 2007_Jun_27____7.6155
7.6150 2007_Jun_28____7.6150
7.6132 2007_Jun_29____7.6132
7.6047 2007_Jul_02____7.6047
7.5930 2007_Jul_03____7.5930
7.5800 2007_Jul_10____7.5800
7.5615 2007_Jul_11____7.5615
7.5314 2007_Jul_17____7.5314
7.5195 2007_Sep_10____7.5195
7.5085 2007_Sep_13____7.5085
7.5002 2007_Sep_21____7.5002
7.5000 2007_Oct_08____7.5000
7.4910 2007_Oct_24____7.4910
7.4805 2007_Oct_25____7.4805
7.4710 2007_Oct_26____7.4710
7.4695 2007_Oct_30____7.4695
7.4605 2007_Oct_31____7.4605
7.4505 2007_Nov_01____7.4505
7.4405 2007_Nov_07____7.4405
7.4200 2007_Nov_08____7.4200
7.4095 2007_Nov_09____7.4095
7.4010 2007_Nov_22____7.4010
7.3970 2007_Nov_23____7.3970
7.3917 2007_Nov_26____7.3917
7.3835 2007_Nov_27____7.3835
7.3795 2007_Nov_29____7.3795
7.3760 2007_Dec_11____7.3760
7.3674 2007_Dec_12____7.3674
7.3615 2007_Dec_13____7.3615
7.3584 2007_Dec_14____7.3584
7.3470 2007_Dec_24____7.3470
7.3275 2007_Dec_25____7.3275
7.3270 2007_Dec_26____7.3270
7.3095 2007_Dec_27____7.3095
7.3030 2007_Dec_28____7.3030
7.2900 2008_Jan_02____7.2900
7.2705 2008_Jan_03____7.2705
7.2693 2008_Jan_04____7.2693
7.2610 2008_Jan_07____7.2610
7.2605 2008_Jan_09____7.2605
7.2100 2008_Jan_10____7.2100
7.2097 2008_Jan_25____7.2097
7.1940 2008_Jan_28____7.1940
7.1915 2008_Jan_29____7.1915
7.1895 2008_Jan_30____7.1895
7.1800 2008_Jan_31____7.1800
7.1500 2008_Feb_05____7.1500
7.1480 2008_Feb_19____7.1480
7.1425 2008_Feb_20____7.1425
7.1395 2008_Feb_21____7.1395
7.1100 2008_Feb_28____7.1100
7.1025 2008_Feb_29____7.1025
7.1000 2008_Mar_03____7.1000
7.0000 2008_Mar_07____7.0000
6.9995 2008_Apr_09____6.9995
6.9895 2008_Apr_10____6.9895
6.9825 2008_Apr_17____6.9825
6.9800 2008_Apr_23____6.9800
6.9700 2008_May_19____6.9700
6.9545 2008_May_21____6.9545
6.9410 2008_May_22____6.9410
6.9400 2008_May_23____6.9400
6.9355 2008_May_26____6.9355
6.9345 2008_May_29____6.9345
6.9320 2008_Jun_02____6.9320
6.9245 2008_Jun_03____6.9245
6.9205 2008_Jun_06____6.9205
6.9190 2008_Jun_10____6.9190
6.9170 2008_Jun_11____6.9170
6.9000 2008_Jun_12____6.9000
6.8999 2008_Jun_16____6.8999
6.8895 2008_Jun_17____6.8895
6.8800 2008_Jun_18____6.8800
6.8735 2008_Jun_19____6.8735
6.8695 2008_Jun_23____6.8695
6.8683 2008_Jun_24____6.8683
6.8639 2008_Jun_25____6.8639
6.8607 2008_Jun_26____6.8607
6.8595 2008_Jun_27____6.8595
6.8535 2008_Jun_30____6.8535
6.8506 2008_Jul_01____6.8506
6.8470 2008_Jul_03____6.8470
6.8420 2008_Jul_10____6.8420
6.8331 2008_Jul_11____6.8331
6.8261 2008_Jul_14____6.8261
6.8200 2008_Jul_15____6.8200
6.8103 2008_Jul_16____6.8103
6.8100 2008_Jul_17____6.8100
6.8085 2008_Sep_24____6.8085
6.6310 2010_Apr_02____6.6310
6.6235 2010_Sep_29____6.6235
6.6115 2010_Oct_04____6.6115
6.6015 2010_Dec_30____6.6015
6.5897 2010_Dec_31____6.5897
6.5885 2011_Jan_05____6.5885
6.5880 2011_Jan_17____6.5880
6.5834 2011_Jan_18____6.5834
6.5815 2011_Jan_19____6.5815
6.5805 2011_Jan_24____6.5805
6.5765 2011_Jan_25____6.5765
6.5585 2011_Feb_02____6.5585
6.5535 2011_Feb_08____6.5535
6.5515 2011_Mar_22____6.5515
6.5455 2011_Mar_31____6.5455
6.5375 2011_Apr_04____6.5375
6.5365 2011_Apr_07____6.5365
6.5363 2011_Apr_08____6.5363
6.5358 2011_Apr_11____6.5358
6.5275 2011_Apr_12____6.5275
6.5215 2011_Apr_15____6.5215
6.5100 2011_Apr_20____6.5100
6.4935 2011_Apr_21____6.4935
6.4805 2011_Apr_29____6.4805
6.4630 2011_May_02____6.4630
6.4550 2011_Jun_14____6.4550
6.4495 2011_Jul_21____6.4495
6.4450 2011_Jul_22____6.4450
6.4395 2011_Jul_26____6.4395
6.4375 2011_Jul_29____6.4375
6.4336 2011_Aug_01____6.4336
6.4332 2011_Aug_02____6.4332
6.4265 2011_Aug_08____6.4265
6.4154 2011_Aug_10____6.4154
6.3913 2011_Aug_11____6.3913
6.3907 2011_Aug_12____6.3907
6.3893 2011_Aug_15____6.3893
6.3838 2011_Aug_16____6.3838
6.3830 2011_Aug_17____6.3830
6.3801 2011_Aug_29____6.3801
6.3787 2011_Aug_30____6.3787
6.3772 2011_Aug_31____6.3772
6.3770 2011_Sep_01____6.3770
6.3750 2011_Oct_03____6.3750
6.3453 2011_Oct_10____6.3453
6.3375 2011_Oct_11____6.3375
6.3365 2011_Nov_09____6.3365
6.3350 2011_Dec_06____6.3350
6.3020 2011_Dec_19____6.3020
6.2939 2011_Dec_30____6.2939
6.2540 2012_Jan_02____6.2540
6.2535 2012_Oct_17____6.2535
6.2476 2012_Oct_18____6.2476
6.2407 2012_Oct_19____6.2407
6.2398 2012_Oct_29____6.2398
6.2374 2012_Oct_31____6.2374
[root@] ~]#
[root@] ~]# cat usdcny_From2007_Lowest_new.data | wc -l
180
[root@] ~]# cat usdcny_From2007_Lowest_new.data | grep "2007" | wc -l
70
[root@] ~]# cat usdcny_From2007_Lowest_new.data | grep "2008" | wc -l
54
[root@] ~]# cat usdcny_From2007_Lowest_new.data | grep "2009" | wc -l
0
[root@] ~]# cat usdcny_From2007_Lowest_new.data | grep "2010" | wc -l
5
[root@] ~]# cat usdcny_From2007_Lowest_new.data | grep "2011" | wc -l
45
[root@] ~]# cat usdcny_From2007_Lowest_new.data | grep "2012" | wc -l
5
可见2007/2008/2011升值频率很高!
No comments:
Post a Comment