shell如何计算这组数据中各个数据的范围大小??
有一组数据。
33 45 55 81 85 93 110 130 135
计算这组数据中
3个数据:
1:小于等于60的数据,计算最大数字和最小数字的差。 这组数据中是 55-33=22
2: 范围(60,100] ,即大于60小于等于100的数据, 这组数据中是 93-81=12
3: 范围(100,150] , 即大于100,小于等于150的数据, 这组数据中是 135-110=25
如何用shell 实现上面的功能??
33 45 55 81 85 93 110 130 135
计算这组数据中
3个数据:
1:小于等于60的数据,计算最大数字和最小数字的差。 这组数据中是 55-33=22
2: 范围(60,100] ,即大于60小于等于100的数据, 这组数据中是 93-81=12
3: 范围(100,150] , 即大于100,小于等于150的数据, 这组数据中是 135-110=25
如何用shell 实现上面的功能??
作者: vitas333_cu 发布时间: 2011-06-15
本帖最后由 yinyuemi 于 2011-06-15 04:20 编辑
复制代码
- echo '33 45 55 81 85 93 110 130 135' |\
- awk '{
- a[1]=$1
- for(i=1;i<=NF;i++) {
- if($i<=60){a["le60"]=$i}
- if($i>60&&$i<=100) ("gt60" in a)?a["le100"]=$i:a["gt60"]=$i
- if($i>100&&$i<=150) ("gt100" in a)?a["le150"]=$i:a["gt100"]=$i
- }
- }
- END{
- print a["le60"]-a[1] RS a["le100"]-a["gt60"] RS a["le150"]-a["gt100"]
- }'
- 22
- 12
- 25
作者: yinyuemi 发布时间: 2011-06-15
学习了。
作者: zooyo 发布时间: 2011-06-15
学习:em39:
作者: horizonhyg 发布时间: 2011-06-15