我正在尝试从 bash 计算积分。
我有一个文件“data.log”,其中包含:
x1 y1
x2 y2
x3 y3
...
xn yn
我用 awk 创建了这个文件。现在我想操纵它以获得:
x2 x1 y2
x3 x2 y3
x4 x3 y4
...
xn xn-1 yn
我尝试过:
awk 'var=$1; print var; prev=var;' data.log
但这没有用。请你帮助我好吗?谢谢
答案1
在第一行之后,打印当前值和前一个值,并在所有行上记住第一个字段:
awk 'NR > 1 { print $1, prev, $2 } { prev = $1 }'
这会产生
$ for i in {1..4}; do printf "x%d y%d\n" $i $i; done | awk 'NR > 1 { print $1, prev, $2 } { prev = $1 }'
x2 x1 y2
x3 x2 y3
x4 x3 y4