Search

리눅스 awk 프로그래밍

생성일
2024/08/21 02:14
Category
Devops 엔지니어
태그
Linux

배경

awk 프로그래밍은 어떤 인덱스의 값을 추출할 것인지를 명시하여 사용할 수 있다.
그래서 awk 프로그램을 작성할 때는 기본적으로 어떤 값을 추출할 것인지를 명시하는 패턴과 추출된 레코드를 전부 출력할 것인지, 특정 필드의 값만 출력할 것인지를 명시하는 것으로 나누어진다.
그리고, awk 는 패턴이 명시되지 않으면 액션에 명시된 해당 필드값을 모두 출력한다.
따라서 패턴을 생략할 수도 있고, 액션을 생성할 수도 있다.
또한 awk 프로그래밍을 이용하여 다양한 프로그램을 만들 수 있다.

내용

제어문{조건문, 반복문} 과 입/출력문{print, printf} 으로 구성된다.
제어문은 쉘 스크립트의 기본 문법과 매우 유사하며, 입/출력문은 C 언어 문법과 유사하다.
액션
설명
print
대상 파일 내용을 그래도 출력함
print 필드리스트
대상 파일의 필드 인덱스($0~$n), 자체 변수(NF, FNR 등), 문자열 등을 조합하여 명시한 대로 출력함
print 필드리스트 > 파일
대상 파일의 필드 인덱스($0~$n), 자체 변수(NF, FNR 등), 문자열 등을 조합하여 명시한 대로 파일에 출력함
printf 포맷, 필드리스트
명시한 대상 파일의 필드 인덱스를 명시한 포맷에 맞추어 출력함
printf 포맷, 필드리스트 > 파일
명시한 대상 파일의 필드 인덱스를 명시한 포맷에 맞추어 파일에 출력함
getline
대상 파일의 짝수 라인과 마지막 라인을 읽어들임. 단독으로 사용할 수 없으며, print 등과 함께 사용해야 함
getline var
대상 파일의 홀수 라인을 읽어들여 단독으로 사용할 수 없으며, print 등과 함께 사용해야 함
getline < 파일
명시한 파일의 값을 읽어들임. 단독으로 사용할 수 없으며, print 등과 함께 사용해야 함
getline var < 파일
명시한 파일의 값을 읽어 var에 저장함. print 등과 함께 사용해야 하며 파일에 명시된 숫자에 해당하는 필드를 출력함