다음 줄을 얻으려면 awk를 사용하십시오

다음 줄을 얻으려면 awk를 사용하십시오

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

관련 정보