我有这样的文件
文件A:
min:353 max:685 avg:519
min:565 max:7984 avg:4274
min:278 max:5617 avg:2947
min:624 max:6768 avg:3639
min:27 max:809 avg:418
min:809 max:3685 avg:2247
min:958 max:2276 avg:1617
我试图获得最后两行平均数来一起广告。
与2247+1617
相似,而不是输出值3864
。
我怎样才能实现它?
到目前为止,我的代码是这样的:(抱歉知识有限)
tail -n 2 file.A | awk -F '[: ]' '{print $6}'
答案 0 :(得分:4)
以下是仅awk
awk -F: 'FNR==NR {n=NR;next} FNR>n-2 {sum+=$NF}END{print sum}' file.A{,}
3864
或者你可以将最后两个值相加:
awk -F: '{f=s;s=$NF}END{print s+f}' file.A
3864
答案 1 :(得分:3)
您似乎想要添加最后一个字段。这会将最后一个字段添加到变量中。输入用完后会执行END
块,因此最后会打印sum
:
tail -2 file.A | awk -F: '{sum+=$NF}END{print sum}'
答案 2 :(得分:3)
与devnull's类似的方法,但使用tac
。
tac file.A | awk -F: '{sum+=$NF}NR==2{print sum;exit}'
3864
tac
撤消文件awk
我们sum
最后一列($NF
)。 sum
并退出。