예제로 배우는 AWK/사칙연산

위키책, 위키책
둘러보기로 이동 검색으로 이동

AWK에서는 기본적인 사칙연산(더하기, 빼기, 곱하기, 나누기)이 모두 가능합니다. 연산에 사용되는 기호의 차이가 약간 있습니다.

더하기 + 
빼기   - 
곱하기 * 
나누기 / 

곱하기와 나누기 기호가 기본적인 수학에서 사용하는 기호와 다른 것을 확인하실 수 있습니다. 그러면 예제 데이터와 함께 사칙연산 중 곱셈과 나눗셈의 간단한 예를 살펴보겠습니다.

 $ cat data.txt
 Ji-Hoon    500    1
 Min-Chul   430    2
 Ki-Woo     510    1
 Nu-Ri      429    3    
 Tae-Hyun   476    1
 Yong-Hwan  413    2    
 Da-Seul    508    1

위 데이터의 첫 번째 필드에는 이름, 두 번째 필드에는 시간당 칼로리 소모량, 세 번째 필드에는 운동시간이 기록되어 있습니다. 먼저, 시간당 칼로리 소모량과 운동시간의 곱으로 계산되는 총 소모 칼로리량을 계산해보겠습니다.

 {
     print $1, $2 * $3;
 }

위의 내용을 data.awk로 작성하고 data.txt파일을 데이터로 하여 실행해보겠습니다.

 $ gawk -f data.awk data.txt
 Ji-Hoon 500
 Min-Chul 860
 Ki-Woo 510
 Nu-Ri 1287
 Tae-Hyun 476
 Yong-Hwan 826
 Da-Seul 508

이처럼 이름이 출력되고 두 번째, 세 번째 필드가 곱해진 값이 출력되는 것을 확인할 수 있습니다. 이번에는 나눗셈의 사용을 알아보기 위해 10으로 나누어 보도록 하겠습니다.

 {
    print $1, ( $2 * $3 ) / 10
 }

마찬가지로 위의 내용을 data.awk로 작성하고 data.txt파일을 데이터로 하여 실행해보겠습니다.

 $ gawk -f data.awk data.txt
 Ji-Hoon 50
 Min-Chul 86
 Ki-Woo 51
 Nu-Ri 128.7
 Tae-Hyun 47.6
 Yong-Hwan 82.6
 Da-Seul 50.8

이처럼 10으로 나누어진 값이 출력되는 것을 확인할 수 있습니다. AWK에서는 +. -, *, / 기호로 사칙연산이 가능하고, 나눗셈의 예에서 본 것처럼 ()를 이용할 수도 있습니다. 곱셈과 나눗셈 기호만 주의해서 사용한다면 AWK에서의 사칙연산은 어렵지 않게 실행하실 수 있을 것입니다.