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