实现统计2条消息的功能,基本要求如下:
1. 在文本中搜索字段“NrUlL1Rpt2DlCiUlL1PuschHarqRpt2DlIndS {”(待处理文本中有上万条此字段),帮读取下方16行的“noOfHarqFeedbacks”的取值
2. 对“noOfHarqFeedbacks”的取值进行判断如果值为1,则进一步读取下方“harqFeedback {”消息内第1位的取值,如果值为4,则进一步读取下方“harqFeedback {”消息内第4位的取值,图片中例子的最终读到的值为1.
3. 最终要求统计整个文本中读到harqFeedback的值,比如最终的结果应为:
0,15550
1,5000
2,3000
同理,也要统计另外一条"NrUlL1Rpt2DlCiUlL1PucchHarqRpt2DlIndS {"最终的harqFeedback返回值
0,15550
1,5000
2,3000
在WP中怎么自定义一个控件,使得当我点击不放的时候里面内容出现另一个内容,而当我点击结束弹起时回到原来的内容。
#!/bin/bash
all_value() {
for i in `awk '/NrUlL1Rpt2DlCiUlL1PuschHarqRpt2DlIndS/{print NR}' test.txt`
do
noOfHarqFeedbacks=`awk -v i=$i 'NR==i+16{print $0}' test.txt | awk -F "[:,]" '{print $2}' | sed 's/ //g'`
LINE=$[noOfHarqFeedbacks+4]
VALUE=`awk -v i=$i -v n=$LINE 'NR==i+16+n{print $0}' test.txt | awk -F "[:,]" '{print $2}' | sed 's/ //g'`
echo $VALUE
done
}
all_value | awk '{++n[$1]}END{for(i in n) print i,n[i]}'
你数据量很大,这个脚本用了for循环,应该会很慢
我用的NrUlL1Rpt2DlCiUlL1PuschHarqRpt2DlIndS关键字的行号,然后+16行是noOfHarqFeedbacks: 4,这行 ,然后再加4+4(noOfHarqFeedbacks值+4行)行是你要取得行,你要看下你文本,是不是格式都是这样,不然会出错
把test.txt替换成你的文件,统计NrUlL1Rpt2DlCiUlL1PucchHarqRpt2DlIndS这个字段,就把这行的换了就行