我的文件格式如下:
0 10
1 20
2 40
5 50
...
a(i) b(i)
a(i+1) b(i+1)
a(i+2) b(i+2)
...
我想对每行(第1行和第2行),(第2行和第3行)的子周期取平均值,就像这样:
(0+1)/2 (20+10)/(1+0)
(1+2)/2 (40+20)/(2+1)
(2+5)/2 (50+40)/(5+2)
...
[a(i)+a(i+1)]/2 [b(i)+b(i+1)]/[a(i)+a(i+1)]
[a(i+1)+a(i+2)]/2 [b(i+1)+b(i+2)]/[a(i+1)+a(i+2)]
awk命令可以这样做吗?
答案 0 :(得分:1)
请考虑以下awk
脚本。它使用两个变量pa,pb(a的上一个值,b的上一个值)进行行之间的计算
awk '
NR>1 { print ($1+pa)/2, ($2+pb)/($1+pa) }
{ pa=$1 ; pb=$2 }
' < input-file