웹사이트 검색

Awk 프로그래밍 언어를 사용하여 스크립트를 작성하는 방법 - 13부


Awk 시리즈의 시작부터 Part 12까지 우리는 명령줄과 쉘 스크립트에서 각각 작은 Awk 명령과 프로그램을 작성해 왔습니다.

그러나 Shell과 마찬가지로 Awk도 해석된 언어이므로 이 시리즈의 시작 부분부터 살펴본 모든 내용을 바탕으로 이제 Awk 실행 가능 스크립트를 작성할 수 있습니다.

쉘 스크립트를 작성하는 방법과 유사하게 Awk 스크립트는 다음 줄로 시작합니다.

#! /path/to/awk/utility -f 

예를 들어 내 시스템에서 Awk 유틸리티는 /usr/bin/awk에 있으므로 다음과 같이 Awk 스크립트를 시작합니다.

#! /usr/bin/awk -f 

위의 줄을 설명하면 다음과 같습니다.

  1. #! - Shebang이라고 하며 스크립트의 명령에 대한 해석기를 지정합니다.
  2. /usr/bin/awk – 인터프리터입니다.
  3. -f – 프로그램 파일을 읽는 데 사용되는 인터프리터 옵션

즉, 이제 Awk 실행 가능 스크립트의 몇 가지 예를 살펴보겠습니다. 아래의 간단한 스크립트부터 시작할 수 있습니다. 선호하는 편집기를 사용하여 다음과 같이 새 파일을 엽니다.

vi script.awk

그리고 아래 코드를 파일에 붙여넣으세요.

#!/usr/bin/awk -f 
BEGIN { printf "%s\n","Writing my first Awk executable script!" }

파일을 저장하고 종료한 후 아래 명령을 실행하여 스크립트를 실행 가능하게 만듭니다.

chmod +x script.awk

그런 다음 실행하세요.

./script.awk
샘플 출력
Writing my first Awk executable script!

중요한 프로그래머라면 "주석은 어디에 있나요?"라고 묻고 있을 것입니다. 예, Awk 스크립트에 주석을 포함할 수도 있습니다. 코드에 주석을 작성하는 것은 항상 좋은 프로그래밍 습관입니다.

이는 다른 프로그래머가 귀하의 코드를 검토하여 스크립트나 프로그램 파일의 각 섹션에서 달성하려는 내용을 이해하는 데 도움이 됩니다.

따라서 위 스크립트에는 다음과 같이 주석을 포함시킬 수 있습니다.

#!/usr/bin/awk -f 

#This is how to write a comment in Awk
#using the BEGIN special pattern to print a sentence 

BEGIN { printf "%s\n","Writing my first Awk executable script!" }

다음으로 파일에서 입력을 읽는 예를 살펴보겠습니다. 계정 파일 /etc/passwd에서 aaronkilik이라는 시스템 사용자를 검색한 다음 사용자 이름, 사용자 ID 및 사용자를 인쇄하려고 합니다. GID는 다음과 같습니다.

다음은 second.awk라는 스크립트의 내용입니다.

#! /usr/bin/awk -f 

#use BEGIN sepecial character to set FS built-in variable
BEGIN { FS=":" }

#search for username: aaronkilik and print account details 
/aaronkilik/ { print "Username :",$1,"User ID :",$3,"User GID :",$4 }

파일을 저장하고 종료한 후 스크립트를 실행 가능하게 만들고 아래와 같이 실행합니다.

chmod +x second.awk
./second.awk /etc/passwd
샘플 출력
Username : aaronkilik User ID : 1000 User GID : 1000

아래 마지막 예에서는 do while 문을 사용하여 0-10의 숫자를 인쇄합니다.

다음은 do.awk라는 스크립트의 내용입니다.

#! /usr/bin/awk -f 

#printing from 0-10 using a do while statement 
#do while statement 
BEGIN {
#initialize a counter
x=0

do {
    print x;
    x+=1;
}
while(x<=10)
}

파일을 저장한 후 이전처럼 스크립트를 실행 가능하게 만듭니다. 그런 다음 실행하세요.

chmod +x do.awk
./do.awk
샘플 출력
0
1
2
3
4
5
6
7
8
9
10

요약

우리는 이 흥미로운 Awk 시리즈를 마쳤습니다. Awk 프로그래밍 언어에 대한 소개로서 13개 부분 모두에서 많은 것을 배웠기를 바랍니다.

처음부터 언급했듯이 Awk는 완전한 텍스트 처리 언어이므로 환경 변수, 배열, 함수(내장 및 사용자 정의) 등과 같은 Awk 프로그래밍 언어의 다른 측면을 더 많이 배울 수 있습니다.

Awk 프로그래밍에는 배우고 마스터해야 할 추가 부분이 있으므로 아래에서 Awk 프로그래밍 기술을 확장하는 데 사용할 수 있는 중요한 온라인 리소스에 대한 링크를 제공했습니다. 이것이 반드시 필요한 전부는 아닙니다. 유용한 Awk 프로그래밍 책을 찾아보세요.

참조 링크: GNU Awk 사용자 가이드 및 AWK 언어 프로그래밍

공유하고 싶은 생각이나 질문이 있으면 아래 의견 양식을 사용하세요. 더욱 흥미진진한 시리즈를 보려면 항상 Tecmint에 연결되어 있어야 합니다.