awk处理案例十七

【场景】 
公司设备上要写一个自动检测的脚本,内容如下:
  Active PDP contexts: 246509
  Available IP-addresses: 379999
  Active PDP contexts: 13028
  Available IP-addresses: 47780
  Active PDP contexts: 21164
  Available IP-addresses: 105447
  Active PDP contexts: 0
  Available IP-addresses: 29
  Active PDP contexts: 21914
  Available IP-addresses: 230419

检测的内容是:Active PDP contexts/(Active PDP contexts+Available IP-addresses) 查看比例是否大于0.8。
每组只能用一个Active PDP contexts和Available IP-addresses 
比如第一组:246509/(246509+379999)      第二组为:13028/(13028+47780)
一共有多少组不确定,如果大于0.8则输出该两行

 【代码】

awk -F":" '{getline d;split(d,a,":");p=$2/($2+a[2]);if(p>0.8) print $0"\n"d}' file

 【解析】
 该例很好诠释getline函数用法(没有>和|);那么getline就是取下一行。这个在我的对awk心得有详细的讲解。getline相当于取偶数行。

posted @ 2013-11-27 22:18  lottu  阅读(236)  评论(0)    收藏  举报