파일에서 데이터를 추출하거나 가공하기 위해 사용되는 텍스트 처리 도구입니다. 주로 파일의 특정한 부분만 추출하거나 특정한 패턴을 찾아내서 가공할 때 사용됩니다.
-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 변수에 저장된 값을 출력합니다.