awk를 사용하여 두 줄마다 숫자를 추가하세요.

awk를 사용하여 두 줄마다 숫자를 추가하세요.

두 행마다 숫자를 더하고 합계를 인쇄해야 합니다.

전임자:

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
$

관련 정보