두 행마다 숫자를 더하고 합계를 인쇄해야 합니다.
전임자:
x
1
2
y
3
4
다음을 출력해야 합니다.
x 3
y 7
답변1
다음은 한 가지 접근 방식입니다.pr
유용그리고 어이쿠.
다음 입력을 사용하십시오.
$ cat ip.txt
x
1
2
y
3
4
먼저 입력 파일을 3개 열 입력으로 변환한 다음 awk를 사용합니다.
$ pr -3at ip.txt | awk '{print $1, $2+$3}'
x 3
y 7
또 다른 방법은getline
<var>
:
이런 방식으로 사용되는 getline 명령은 변수 NR, FNR 및 RT(물론 var도 포함)만 설정합니다. 레코드가 필드로 분할되지 않으므로 필드 값($0 포함)과 NF 값이 변경되지 않습니다.
$ awk '{getline a; getline b; print $0 a+b}' ip.txt
x 3
y 7
답변2
또 다른 방법은 awk 문을 사용하는 것입니다 getline
.
$ awk '{a=$0;getline;b=$1;getline;print a,b+$1}' ip.txt
x 3
y 7
$