linux下数据处理应用

现在有如下结构的数据需要进行如下特殊处理,处理使用grep awk等命令进行。

数据内容如下:

日期          开盘       收盘        涨跌     涨跌幅
20180102    5,265.00    5,272.81   11.25    0.210%
20180103    5,269.80    5,319.86   47.05    0.892%
20180204    5,328.41    5,361.57   41.71    0.784%
20180207    5,357.45    5,393.34   31.77    0.593%
20180308    5,414.56    5,386.53   -6.81    -0.126%
20180309    5,365.22    5,435.81   49.28    0.915%
20180310    5,449.16    5,456.54   20.73    0.381%
20180411    5,471.39    5,484.68   28.14    0.516%
20180414    5,507.58    5,497.90   13.22    0.241%
20180515    5,503.93    5,443.79   -54.11   -2.984%
20180516    5,395.28    5,290.61   -153.18  -2.814%
20180617    5,235.91    5,151.63   -138.98  -2.627%
20180618    5,141.37    5,180.51   28.88    0.561%
20180721    5,188.80    4,914.44   -266.07  -5.136%
20180722    4,818.00    4,559.75   -354.69  -7.217%
20180823    4,572.90    4,703.05   143.30    3.143%
20180824    4,753.44    4,717.73   14.68     0.312%
20180925    4,716.98    4,761.69   43.96     0.932%
20180928    4,720.56    4,419.29   -342.40   -7.191%
20181009    4,426.27    5,443.79   38.65     0.875
20181016    5,395.28    5,290.61   -153.18  -2.814%
20181017    5,328.41    5,151.63   -138.98  -2.627%
20181118    5,357.45    5,180.51   28.88    0.561%
20181121    5,414.56    4,914.44   -266.07  -5.136%
20181122    5,365.22    4,559.75   -354.69  -7.217%
20181123    5,449.16    4,703.05   143.30    3.143%
20181224    5,471.39    4,717.73   14.68     0.312%
20181225    5,507.58    4,761.69   43.96     0.932%
20181228    5,503.93    4,419.29   -342.40   -7.191%
20181229    5,395.28    4,717.73   38.65     0.875%

1、只列出上涨的交易日的行情数据   


grep -v "-" file

解释:-v   反向匹配

处理结果:

2、总共有多少个交易日,其中上涨的交易日有多少天

grep -v "-" file | wc -l

处理结果:

3、单日涨幅最高的交易日是哪一天,列出当天的行情


sort  -k4 -n  -r  file | sed -n '1p'

解释: -k 指定分类是域上的数字;

             -n 按数字大小输出;                                                                                                                                                                               
            -r 按逆序输出排序结果;

处理结果:


 
4、只列出单日涨幅超过3%的行情数据


awk  '{if($5>3){print }}' file

处理结果:

5、只列出涨跌在0-15之间行情数据,并统计天数


awk '{if(($4>0) && ($4 < 15)) {print }}' file

处理结果:

猜你喜欢

转载自blog.csdn.net/zxy131072/article/details/88093521