脚本练习_比较长

#!/bin/bash

## 功能:自动生成两个文件 ,文件一以空格为分隔符 ,第一列为手机号码 ,第二列为话费金额
##                          文件二以空格为分隔符 ,第一列为手机号码 ,第二列为流量金额

##       其中 ,文件一、二中的手机号码相同、并且一一对应 ,金额不同

## 要求:1、打印出话费金额最大的手机号码跟话费消费金额
##       2、打印出流量金额最大的手机号码跟流量消费金额
##       3、汇总出总话费金额、总流量金额 ,并计算出各平均值
##       4、如果某一手机号码的话费金额超过平均值 ,那么显示 “手机号码 话费金额 平均值”
##       5、如果某一手机号码的流量金额超过平均值 ,那么显示 “手机号码 流量金额 平均值”
##       6、如果某一手机号码的话费金额、流量金额都超过平均值 ,那么显示 “手机号码 恭喜你成为 VIP”
##       7、将 VIP 手机号码的话费金额跟流量金额相加 ,数值最大的手机号码显示 “手机号码 恭喜你成为 VIP_P”

## Writen by Wangxiaoqiang 2014/12/18.

fun_file1_2(){
  i=0
  while [ $i -le 20 ];do
    num=$RANDOM
    [ ${#num} -eq 4 ] && echo "135$num$num $[$num/90]" >> huafei.txt \
                      && echo "135$num$num $[$num/70]" >> liuliang.txt \
                      && let i++
  done
}

fun_1(){
  echo "#################################################################"
  awk '{if ($2>max){max=$2 ; max1=$0}} END {print max1}' huafei.txt
}

fun_2(){
  awk '{if ($2>max){max=$2 ; max1=$0}} END {print max1}' liuliang.txt
}

fun_3(){
  line=`wc -l < huafei.txt`
  sum_huafei=`awk '{sum+=$2}END{print sum}' huafei.txt`
  sum_liuliang=`awk '{sum+=$2}END{print sum}' liuliang.txt`
  avg_huafei=`echo "scale=2;$sum_huafei/$line" | bc`
  avg_liuliang=`echo "scale=2;$sum_liuliang/$line" | bc`
  echo "##################################################################"
  echo "sum_huafei   = $sum_huafei"
  echo "sum_liuliang = $sum_liuliang"
  echo "avg_huafei   = $avg_huafei"
  echo "avg_liuliang = $avg_liuliang"
}

fun_4_5_6_7(){
  fun_3
  number=(`awk '{print $1}' huafei.txt`)
  huafei=(`awk '{print $2}' huafei.txt`)
  liuliang=(`awk '{print $2}' liuliang.txt`)
  length=${#number[@]}
  echo "###################################################################"
  for ((i=0;i<$length;i++))
    {
      n=`echo "scale=2;${huafei[$i]}-$avg_huafei" | bc`
      echo $n | grep -q '-'
      [ $? -ne 0 ] && echo "    ${number[$i]}           ${huafei[$i]}           $avg_huafei" \
                   && echo ${number[$i]} >> vip_huafei
  }
  echo "###################################################################"
  for ((i=0;i<$length;i++))
    {
      m=`echo "scale=2;${liuliang[$i]}-$avg_liuliang" | bc`
      echo $m | grep -q '-'
      [ $? -ne 0 ] && echo "    ${number[$i]}           ${liuliang[$i]}         $avg_liuliang" \
                   && echo ${number[$i]} >> vip_liuliang
  }

  vip=(`comm -12 vip_huafei vip_liuliang`)
  length2=${#vip[@]}
  for ((i=0;i<$length2;i++))
    {
      echo "${vip[$i]} you have become VIP !"
  }
  echo "###################################################################"
  for ((i=0;i<$length2;i++))
    {
      vip_huafei=`grep ${vip[$i]} huafei.txt`
      vip_liuliang=`grep ${vip[$i]} liuliang.txt`
      vip_h=`echo $vip_huafei | awk '{print $2}'`
      vip_l=`echo $vip_liuliang | awk '{print $2}'`
      echo "${vip[$i]} `expr $vip_h + $vip_l`" >> vip_sum
  }
   vip_p=`awk '{if ($2>max){max=$2;vip_p=$1}} END {print vip_p}' vip_sum`
   echo "$vip_p you have become VIP_P !!!"
}

[ -e huafei.txt ] && rm -rf huafei.txt
[ -e liuliang.txt ] && rm -rf liuliang.txt
[ -e vip_huafei ] && rm -rf vip_huafei
[ -e vip_liuliang ] && rm -rf vip_liuliang.txt
[ -e vip_sum ] && rm -rf vip_sum

fun_file1_2
fun_1
fun_2
fun_4_5_6_7

# End

你可能感兴趣的:(Scripts,脚本练习)