예제로 배우는 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에서의 사칙연산은 어렵지 않게 실행하실 수 있을 것입니다.