Awk 내장 변수 사용 방법 배우기-10 부
이 시리즈의이 부분에서는 Awk 기능의 섹션을 살펴보면서 Awk의 내장 변수 개념을 살펴 보겠습니다. "Awk에서 사용할 수있는 두 가지 유형의 변수가 있습니다. "8 부에서 다룬 사용자 정의 변수와 내장 변수.

기본 제공 변수에는 Awk에 이미 정의 된 값이 있지만 이러한 값을 신중하게 변경할 수도 있습니다. 기본 제공 변수에는 다음이 포함됩니다.
FILENAME
: current input file name( do not change variable name)FR
: number of the current input line (that is input line 1, 2, 3… so on, do not change variable name)NF
: number of fields in current input line (do not change variable name)OFS
: output field separatorFS
: input field separatorORS
: output record separatorRS
: input record separator
위의 Awk 내장 변수 사용을 설명해 보겠습니다.
현재 입력 파일의 파일 이름을 읽으려면 다음과 같이 FILENAME
기본 제공 변수를 사용할 수 있습니다.
$ awk ' { print FILENAME } ' ~/domains.txt

FILENAME
내장 변수를 사용할 때 Awk의 기본 동작 인 각 입력 행에 대해 파일 이름이 인쇄된다는 것을 알 수 있습니다.
NR
을 사용하여 입력 파일의 줄 (레코드) 수를 계산합니다. 아래 예에서 볼 수 있듯이 빈 줄도 계산합니다.
cat 명령을 사용하여 domains.txt 파일을 보면 텍스트가있는 14 줄과 비어있는 2 줄이 포함됩니다.
$ cat ~/domains.txt

$ awk ' END { print "Number of records in file is: ", NR } ' ~/domains.txt

레코드 또는 라인의 필드 수를 계산하기 위해 다음과 같이 NR 내장 변수를 사용합니다.
$ cat ~/names.txt

$ awk '{ print "Record:",NR,"has",NF,"fields" ; }' ~/names.txt

다음으로, FS
내장 변수를 사용하여 입력 필드 구분 기호를 지정할 수도 있습니다. Awk가 입력 행을 필드로 나누는 방법을 정의합니다.
FS
의 기본값은 공백과 탭이지만 FS
의 값을 Awk에게 그에 따라 입력 줄을 나누도록 지시하는 모든 문자로 변경할 수 있습니다.
이를 수행하는 두 가지 방법이 있습니다.
- one method is to use the FS built-in variable
- and the second is to invoke the -F Awk option
Linux 시스템의/etc/passwd 파일을 고려하십시오.이 파일의 필드는 :
문자를 사용하여 구분되므로 특정 필드를 필터링 할 때 새 입력 필드 구분 기호로 지정할 수 있습니다. "다음 예에서와 같이 :
다음과 같이 -F
옵션을 사용할 수 있습니다.
$ awk -F':' '{ print $1, $4 ;}' /etc/passwd

선택적으로 아래와 같이 FS
내장 변수를 활용할 수도 있습니다.
$ awk ' BEGIN { FS=“:” ; } { print $1, $4 ; } ' /etc/passwd

출력 필드 구분자를 지정하려면 OFS
내장 변수를 사용합니다. 아래 예에서와 같이 사용하는 문자를 사용하여 출력 필드를 구분하는 방법을 정의합니다.
$ awk -F':' ' BEGIN { OFS="==>" ;} { print $1, $4 ;}' /etc/passwd

이 10 부에서는 미리 정의 된 값과 함께 제공되는 Awk 내장 변수를 사용하는 아이디어를 살펴 보았습니다. 그러나 우리는 또한 이러한 값을 변경할 수 있지만 적절한 이해와 함께 수행중인 작업을 알지 못하는 경우 변경하지 않는 것이 좋습니다.
그런 다음 Awk 명령 작업에서 쉘 변수를 사용하는 방법을 다루기 때문에 Tecmint에 계속 연결되어 있습니다.