早教吧 育儿知识 作业答案 考试题库 百科 知识分享

不好意思,还得麻烦.还是刚才SCTP.log的问题掐头去尾之后,SCTP.log如下:783987Jan3020112:45PM1845691Jan3020112:45PM785674Jan3020112:30PM1874602Jan3020112:30PM请问如何对前两行和后两行的第一列数分别

题目详情
不好意思,还得麻烦.还是刚才SCTP.log的问题
掐头去尾之后,SCTP.log如下:
783987 Jan 30 2011 2:45PM
1845691 Jan 30 2011 2:45PM
785674 Jan 30 2011 2:30PM
1874602 Jan 30 2011 2:30PM
请问如何对前两行和后两行的第一列数分别求平均值?能用awk实现吗,
awk 'BEGIN{sum=0} {sum=$1+sum} END {print "average " sum / NR}' SCTP.log
只能从头到尾,困惑在于行变量不太好控制.或者还有什么简单的语句能实现.我没分了,
我面临的问题是:一个具有偶数行的文件(行数是变量,就难在这块儿).想对文件的前半部分和后半部分的第一列数求平均.如果是固定行数,按照你的方法可以求.但如果文件的一半行数是变量$ROW的话,如何控制NR呢,我试了几遍,都是语法问题.下面是我的写法,
awk 'BEGIN{sum=0} {sum=$1+sum} NR==“$ROW” {print "average " sum / NR}' SCTP.log
awk 'NR=="`expr $ROW "+" 1`"{sum=0} {sum=$1+sum} END {print "average " sum* 2 / NR}' SCTP.log
▼优质解答
答案和解析
你说的是求两个平均值么?
awk 'NR2; BEGIN{sum=0} {sum=$1+sum} END {print "average " sum/NR}' SCTO.log
或者指定第二第三行
awk 'NR>=2&&NR