행복아울렛
[UNIX/LINUX] AWK NF(the Number of Fields) 본문
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