행복아울렛

[UNIX/LINUX] AWK NF(the Number of Fields) 본문

Programming

[UNIX/LINUX] AWK NF(the Number of Fields)

붕탱구 2007. 2. 14. 12:59

Awk를 맛보는 간단한 프로그램에 이어 이번에는 NF에 관한 내용입니다.

NF는 the Number of Fields로 필드의 숫자를 나타냅니다.

아래는 지난 번 예제입니다.

emp.data 파일의 내용입니다.

$ cat emp.data
Beth   4.00     0
Dan    3.75     0
Kathy  4.00    10
Mark   5.00    20
Mary   5.50    22
Susie  4.25    18

다음은  세번째 항목이 0이상인 라인에 대해서만 두번째 세번째 항목을 곱해서 출력해줍니다.

$ awk '$3 > 0 { print $1, $2 * $3 }' emp.data
Kathy 40
Mark 100
Mary 121
Susie 76.5

다음은 NF를 활용해서 출력해보겠습니다.

$ awk '{ print NF, $1, $NF }' emp.data
3 Beth 0
3 Dan 0
3 Kathy 10
3 Mark 20
3 Mary 22
3 Susie 18

실행결과를 살펴보면, 첫번째 NF는 필드수를 출력합니다. 각 라인이 필드수가 3개(Beth, 4.00, 0)이므로 3이 출력됩니다.
두번째 $1는 첫번째 필드이므로 이름을 출력해줍니다.
그리고 세번째 $NF는 NF가 3이므로 $3이되니까 맨 마지막의 필드를 출력해줍니다.

이를 이용해서 필드수가 여러개로 가변 적인 라인에서 일정 수의 필드만 출력한다든지 하는 스크립트를 구현할 수 있겠습니다.

Comments