Linux awk 명령어

현승빈·2023년 7월 28일

개요

운영체제는 ubuntu 20.04 버전입니다.

Linux 에 awk 명령어를 알아보겠습니다.

"awk"는 주로 텍스트 파일을 한 줄씩 스캔 및 처리하고, 패턴 일치 규칙을 적용하고, 해당 패턴을 기반으로 작업을 수행하는 데 사용됩니다. 'awk'는 데이터 추출, 조작 및 보고 작업에 자주 사용됩니다.

다음은 awk 작동 방식에 대한 간략한 개요입니다.

입력: awk는 일반적으로 텍스트 파일 또는 다른 명령의 출력(파이프 입력)인 입력 스트림에서 데이터를 읽습니다.

패턴 및 동작: awk 명령의 기본 구조는 패턴-동작 쌍으로 구성됩니다. 패턴은 조치를 적용해야 하는 행 또는 레코드를 지정하고 조치는 일치하는 행으로 수행할 작업을 설명합니다.

레코드 및 필드: awk에서 입력 데이터 라인을 "레코드"라고 하며 "필드"라는 더 작은 단위로 나뉩니다. 기본적으로 필드는 공백(공백 또는 탭)으로 구분되지만 필요에 따라 필드 구분 기호를 사용자 지정할 수 있습니다.

실행: awk가 입력의 각 줄을 읽을 때 지정된 패턴에 대해 줄을 테스트합니다. 패턴이 일치하면 연결된 작업이 실행됩니다. 패턴을 지정하지 않으면 모든 입력 라인에 대해 작업이 수행됩니다.

출력: awk의 작업 결과는 일반적으로 터미널에 표시되거나 파일로 리디렉션될 수 있는 표준 출력으로 인쇄됩니다.

다음은 awk 구문을 설명하는 간단한 예입니다.
아래 이미지 와 같이 첫번째 필드를 $1 이라고 생각하시면 됩니다.
awk 에 -F 없이 기본 명령어로 입력하면 기본 띄어쓰기로 구별됩니다.

awk '$' 는 필드의 번호입니다. '$2 > 24 {print $1}' 파일명은
해당 파일에 두번째 필드가 24보다 클때 $1 첫번째 필드를 출력해라라고 해석됩니다.

$ cat age.txt
kim 25
park 30
hyun 32

$ awk '$2 > 24 {print $1}' age.txt
kim
park
hyun

$ awk '$2 > 26 {print $1}' age.txt
park
hyun

두번째 필드 사이 사이를 어떤 기준으로 구별할 것인지 awk -F 명령어로 지정할 수 있습니다.

$ cat age.txt
kim seo, 25
park ji, 30
hyun seung, 32

$ awk -F ',' '{print $1,$2}' age.txt
kim seo  25
park ji  30
hyun seung  32

$ awk -F ',' '{print $1}' age.txt
kim seo
park ji
hyun seung

'awk'에서 필드 구분 기호를 사용자 지정하는 것은 다양한 형식과 구조의 데이터로 작업할 수 있는 강력한 기능으로, 텍스트 처리 작업을 위한 다목적 도구입니다.

profile
클라우드 엔지니어

0개의 댓글