日期:2014-05-16  浏览次数:20563 次

小白求linux语句解释
count=`cat /opt/Roamware/yehui/carr_ul_ratio.lst|wc -l|awk '{print $1}'`
   echo "   Time            Operator        ul_recv ul_prepaid ul_prepaid_succ ul_postpaid ul_bypass  succ_ratio"
   tail -$count /opt/Roamware/logs/amms/stat/carr_ul_ratio.`date +%Y%m%d`.log |grep 201|awk -F"," '{if($4>$5){print $0,$5/$4*100"%"} else{print $0,"100%"}}'

由于小白还是分步求解答
第一步:count=`cat /opt/Roamware/yehui/carr_ul_ratio.lst|wc -l|awk '{print $1}'`
cat /opt/Roamware/yehui/carr_ul_ratio.lst|wc -l 结果36,后面加上awk '{print $1}'干嘛,而且对结果没影响啊 还是36

第二步:  echo "   Time            Operator        ul_recv ul_prepaid ul_prepaid_succ ul_postpaid ul_bypass  succ_ratio"
这个不解释
第三步:tail -$count /opt/Roamware/logs/amms/stat/carr_ul_ratio.`date +%Y%m%d`.log |grep 201这个结果是8列数据 分别对应ehco的前8个字段。
第四步:|awk -F"," '{if($4>$5){print $0,$5/$4*100"%"} else{print $0,"100%"}}'这个结果是百分比,现在的问题是这个百分比是怎么放在最后一列上的也就是 不太明白{print $0,"100%"}

------解决方案--------------------
第一步的问题.后面加上awk '{print $1}'干嘛,而且对结果没影响啊 还是36
确实没什么用,防止有些平台 36 后面还显示其他信息。
第四步的问题.{print $0,"100%"} 
awk的print 的$0这个参数是原封不动的吧前面的所有内容装进去. $1,$2...就是从第一分段开始。作为参数分配得来的。
------解决方案--------------------
引用
第一步:count=`cat /opt/Roamware/yehui/carr_ul_ratio.lst
------解决方案--------------------
wc -l
------解决方案--------------------
awk '{print $1}'`
cat /opt/Roamware/yehui/carr_ul_ratio.lst
------解决方案--------------------
wc -l 结果36,后面加上awk '{print $1}'干嘛,而且对结果没影响啊 还是36

没用。可以删掉。
也许作者在测试的时候是这样写的:
wc -l /opt/Roamware/yehui/carr_ul_ratio.lst