배경
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 등과 함께 사용해야 하며 파일에 명시된 숫자에 해당하는 필드를 출력함 |