首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

awk还是用其他能解决小弟我这有关问题,高手帮忙

2013-01-05 
awk还是用其他能解决我这问题,高手帮忙!本帖最后由 barnin 于 2012-11-09 16:14:36 编辑qjomp31 TICLI 24

awk还是用其他能解决我这问题,高手帮忙!
本帖最后由 barnin 于 2012-11-09 16:14:36 编辑 qjomp31 TICLI 24>
M 49 DUMP:CELL 1 PLM 10 
     CARRIER:  1 SECTOR:  1
     75TH PERCENTILE REVERSE LINK NOISE POWER
     -83.00dBm    -83.00dBm    -83.00dBm    -83.00dBm    -83.00dBm    -82.00dBm    
     -82.50dBm    -83.00dBm    -83.00dBm    -83.00dBm    -82.75dBm    -83.00dBm    
     -83.00dBm    -82.25dBm    -83.25dBm    -83.25dBm    -83.50dBm    -83.25dBm    
     -83.25dBm    -83.00dBm    -83.25dBm    -83.25dBm    -83.25dBm    -82.50dBm    
     -82.75dBm    -83.00dBm    -83.25dBm    -83.25dBm    -83.00dBm    -83.25dBm    
     -83.50dBm    -83.00dBm    -82.75dBm    -81.75dBm    -83.25dBm    -83.25dBm    
     -83.25dBm    -83.25dBm    -82.50dBm    -83.00dBm    -83.25dBm    -83.00dBm    
     -83.25dBm    -83.25dBm    -83.50dBm    -83.00dBm    -83.25dBm    -82.50dBm    
     -82.75dBm    -83.00dBm    -82.25dBm    -82.75dBm    -83.25dBm    -82.25dBm    
     -83.00dBm    -83.25dBm    -83.25dBm    -80.25dBm    -82.25dBm    -82.75dBm    
     -83.00dBm    -83.00dBm    -83.00dBm    -82.75dBm    -82.75dBm    -82.50dBm    
     -82.75dBm    -82.50dBm    -82.75dBm    -82.75dBm    -83.00dBm    -83.00dBm    
     -82.75dBm    -83.00dBm    -82.25dBm    -83.00dBm    -83.00dBm    -82.50dBm    
     -82.75dBm    -83.00dBm    -83.00dBm    -83.25dBm    -83.50dBm    -83.25dBm    
     -83.50dBm    -83.00dBm    -83.00dBm    -81.00dBm    -81.00dBm    -80.75dBm    
     
     
      DEVICE - TICLI 24
11/06/12 15:49:54 #569865



qjomp31 TICLI 24>

...........(很多很多行,估计有10万行文件)

希望提取到CELL * sector * -80.75dBM 如图所示:

75TH是判断关键,看到有75TH的才提取NR-2行的CELL *和NR-1行的SECTOE * 和NR+15行的多少dBM,因为有些是没有75TH的。

awk还是用其他能解决小弟我这有关问题,高手帮忙
[解决办法]
笨人笨方法


#!/bin/bash
num=0
flag=0
cat a.txt 
[解决办法]
 while read line
do

    line2=`echo ${line} 
[解决办法]
 grep aaa`
    if [ "${line2}" ]
    then
        flag=1
        continue
    fi
    if [ ${flag} -eq 1 ]
    then
        num=$((num+1))
    fi
    if [ ${num} -eq 2 ]
    then
        echo ${line}
        flag=0
        num=0
    fi
done


打印a.txt 中aaa后面的第二行
[解决办法]
因为你说有10多万行,所以为了提高效率,用了“qjomp31 TICLI 24>”这个分段的标志,如果你的文件这行内容不是固定的,那么就不能用这个过滤条件了。

[nicenight@CSDN ~]$ awk '/qjomp31 TICLI 24>/{getline; if(! match($0, /CELL [^ ]+/)) next; cell = substr($0, RSTART, RLENGTH); getline; if(! match($0, /SECTOR.+/)) next; sector = substr($0, RSTART, RLENGTH); getline; if(! match($0, /75TH/)) next; for(i=0; i < 15; ++i) getline; power=$6; print cell", "sector", "power}' file   
CELL 1, SECTOR:  1, -80.75dBm
CELL 1, SECTOR:  1, -88.75dBm
[nicenight@CSDN ~]$ cat file
qjomp31 TICLI 24>
M 49 DUMP:CELL 1 PLM 10
     CARRIER:  1 SECTOR:  1
     75TH PERCENTILE REVERSE LINK NOISE POWER
     -83.00dBm    -83.00dBm    -83.00dBm    -83.00dBm    -83.00dBm    -82.00dBm
     -82.50dBm    -83.00dBm    -83.00dBm    -83.00dBm    -82.75dBm    -83.00dBm
     -83.00dBm    -82.25dBm    -83.25dBm    -83.25dBm    -83.50dBm    -83.25dBm
     -83.25dBm    -83.00dBm    -83.25dBm    -83.25dBm    -83.25dBm    -82.50dBm
     -82.75dBm    -83.00dBm    -83.25dBm    -83.25dBm    -83.00dBm    -83.25dBm
     -83.50dBm    -83.00dBm    -82.75dBm    -81.75dBm    -83.25dBm    -83.25dBm


     -83.25dBm    -83.25dBm    -82.50dBm    -83.00dBm    -83.25dBm    -83.00dBm
     -83.25dBm    -83.25dBm    -83.50dBm    -83.00dBm    -83.25dBm    -82.50dBm
     -82.75dBm    -83.00dBm    -82.25dBm    -82.75dBm    -83.25dBm    -82.25dBm
     -83.00dBm    -83.25dBm    -83.25dBm    -80.25dBm    -82.25dBm    -82.75dBm
     -83.00dBm    -83.00dBm    -83.00dBm    -82.75dBm    -82.75dBm    -82.50dBm
     -82.75dBm    -82.50dBm    -82.75dBm    -82.75dBm    -83.00dBm    -83.00dBm
     -82.75dBm    -83.00dBm    -82.25dBm    -83.00dBm    -83.00dBm    -82.50dBm
     -82.75dBm    -83.00dBm    -83.00dBm    -83.25dBm    -83.50dBm    -83.25dBm
     -83.50dBm    -83.00dBm    -83.00dBm    -81.00dBm    -81.00dBm    -80.75dBm

      DEVICE - TICLI 24
11/06/12 15:49:54 #569865

qjomp31 TICLI 24>
M 49 DUMP:CELL 1 PLM 10
     CARRIER:  1 SECTOR:  1
     75TH PERCENTILE REVERSE LINK NOISE POWER
     -83.00dBm    -83.00dBm    -83.00dBm    -83.00dBm    -83.00dBm    -82.00dBm
     -82.50dBm    -83.00dBm    -83.00dBm    -83.00dBm    -82.75dBm    -83.00dBm
     -83.00dBm    -82.25dBm    -83.25dBm    -83.25dBm    -83.50dBm    -83.25dBm
     -83.25dBm    -83.00dBm    -83.25dBm    -83.25dBm    -83.25dBm    -82.50dBm
     -82.75dBm    -83.00dBm    -83.25dBm    -83.25dBm    -83.00dBm    -83.25dBm
     -83.50dBm    -83.00dBm    -82.75dBm    -81.75dBm    -83.25dBm    -83.25dBm
     -83.25dBm    -83.25dBm    -82.50dBm    -83.00dBm    -83.25dBm    -83.00dBm
     -83.25dBm    -83.25dBm    -83.50dBm    -83.00dBm    -83.25dBm    -82.50dBm
     -82.75dBm    -83.00dBm    -82.25dBm    -82.75dBm    -83.25dBm    -82.25dBm


     -83.00dBm    -83.25dBm    -83.25dBm    -80.25dBm    -82.25dBm    -82.75dBm
     -83.00dBm    -83.00dBm    -83.00dBm    -82.75dBm    -82.75dBm    -82.50dBm
     -82.75dBm    -82.50dBm    -82.75dBm    -82.75dBm    -83.00dBm    -83.00dBm
     -82.75dBm    -83.00dBm    -82.25dBm    -83.00dBm    -83.00dBm    -82.50dBm
     -82.75dBm    -83.00dBm    -83.00dBm    -83.25dBm    -83.50dBm    -83.25dBm
     -83.50dBm    -83.00dBm    -83.00dBm    -81.00dBm    -81.00dBm    -88.75dBm

      DEVICE - TICLI 24
11/06/12 15:49:54 #569865

热点排行