개인 자료 정리 홈페이지 입니다.

Note > 리눅스 명령어 모음 gawk - pattern scanning and processing languageBy a3040, Published on Invalid Date

파일에서 데이터를 추출하거나 가공하기 위해 사용되는 텍스트 처리 도구입니다. 주로 파일의 특정한 부분만 추출하거나 특정한 패턴을 찾아내서 가공할 때 사용됩니다.


-F: 필드 구분자를 지정할 때 사용 (기본 값은 공백 문자)

-v: 변수를 선언할 때 사용

$1, $2, ... : 데이터에서 필드를 추출할 때 사용

if, else if, else: 조건문을 작성할 때 사용

print: 데이터를 출력할 때 사용

BEGIN, END: 데이터 처리 전에 실행할 코드와 데이터 처리 후에 실행할 코드를 작성할 때 사용


]$ awk -F ':' '{print $1, $6}' /etc/passwd

passwd 파일을 직접 지정하여 awk 명령어를 실행합니다. passwd 파일을 직접 지정하여 awk 명령어를 실행합니다. 

example /home/example


]$ cat passwd | awk -F ':' '{print $1, $6}'

/passwd 파일의 내용을 출력하고, awk 명령어를 사용하여 각 줄을 : 기호를 구분자로 필드를 분리하고, 필드 번호가 1인 값(즉, 사용자 이름)과 필드 번호가 6인 값(즉, 홈 디렉토리)을 출력합니다.


/etc/passwd 파일에서 사용자 example 제하고 그룹 번호를 찾아 더하기

awk -F ':' '{if ($1 != "example") sum += $4} END {print sum}' /etc/passwd


각 줄을 : 기호를 구분자로 필드를 분리하고, 

{if ($1 != "example") sum += $4} 구문에서 사용자 이름이 example이 아닌 경우에만 

필드 번호가 4인 값(즉, 그룹 번호)을 더합니다. 

END 구문에서 sum 변수에 저장된 값을 출력합니다.