안녕하세요 9번째 시간입니다 이번시간에는
텍스트 가공 및 분석을 해주는 Gawk 패키지를 빌드해보겠습니다.
빌드 하기 앞서 Gawk의 역할과 구성에 대해 알아봅시다.
1. Gawk의 역할
Gawk는 리눅스에서 텍스트 데이터를 읽고, 조건에 맞게 추출하고, 가공하고, 계산해서 출력해주는 도구입니다.
특히 로그 파일, 설정 파일, 명령어 실행 결과처럼 줄 단위 텍스트 데이터 처리에 강합니다.
Gawk는 다음과 같은 역할을 합니다.
- 특정 조건에 맞는 줄 검색
- 원하는 열(필드)만 추출
- 문자열 분리 및 재구성
- 합계, 평균, 개수 계산
- 로그 분석 및 자동화 스크립트 보조
예를 들어 웹 로그에서 특정 IP만 뽑거나, /etc/passwd에서 사용자명만 추출하거나 숫자 목록의 합계를 구하는 작업을 짧은 명령으로 처리 할 수 있습니다.
즉,, Gawk는 텍스트를 규칙적으로 분석하고 원하는 형태로 바꾸는 도구 라고 볼 수 있습니다.
2. Gawk의 명령어
Gawk의 기본 형식은 다음과 같습니다.
gawk '조건 { 동작 }' 파일명
여기서 의미는 다음과 같습니다.
- 조건 : 어떤 줄을 대상으로 할지 결정
- 동작 : 조건이 맞을 때 실행할 작업
- 파일명 : 처리할 대상 파일
2-1. 예시 1 : 첫 번째 필드 출력
gawk '{ print $1 }' test.txt
이 명령은 test.txt의 각 줄에서 첫 번째 필드만 출력하는 명령어 입니다.
파일 내용은 아래와 같습니다.

출력 결과는 아래와 같습니다.

2-2. 예시 2 : 특정 구분자 사용
기본적으로 Gawk는 공백을 기준으로 필드를 나누지만, -F 옵션으로 구분자를 바꿀 수 있습니다.
gawk -F: '{ print $1 }' /etc/passwd
이 명령은 /etc/passwd 파일에서 : 기준으로 나눈 뒤, 첫 번째 필드인 사용자명을 출력합니다.

2-3. 예시 3 : 조건 지정
gawk '$3 > 100 { print $1, $3 }' test.txt
세 번째 필드 값이 100보다 큰 줄만 골라서, 첫 번째와 세 번째 필드를 출력하게 하는 명령어입니다.

3. Gawk-5.3.2 빌드
1. 소스 준비 및 이동 (lfs 유저)
cd $LFS/sources
tar -xvf gawk-5.3.0.tar.xz
cd gawk-5.3.0
2. 설정 (Configure)
sed -i 's/extras//' Makefile.in
./configure --prefix=/usr \ # 경로 설정
--host=$LFS_TGT \ # 크로스 컴파일용 라이브러리 가져다씀
--build=$(build-aux/config.guess) # build와 Host를 명확히 구분해주어 빌드 시스템이 헷갈리지 않고 정확한 바이너리 생성
빌드 중에 필요 없는 불필요한 파일들을 생성하지 않도록 설정합니다.
sed -i 's/extras//' Makefile.in (불필요한 기능 제거)
- sed -i : 파일을 직접 수정하라는 뜻입니다.
- 's/extras//' : extras라는 단어를 찾아서 빈칸으로 (//) 바꿔라, 즉 삭제하라는 뜻입니다.
- Makefile.in : configure 명령어가 실행될 때 참조하는 Makefile의 설계도 입니다.
3. 컴파일 및 설치
make
make DESTDIR=$LFS install
4. 뒷정리
cd $LFS/sources
rm -rf gawk-5.3.2
5. 설치 완료 테스트
gawk 'BEGIN { print "Gawk is working!" }'
echo "LFS Gawk Verification Test" | gawk '{print $2, $4}'
BEGIN 블록 테스트 및 필드 추출 테스트를 진행해봅니다.

정상적으로 각 명령에 대한 출력이 이루어졌습니다.
자, 여기까지가 Gawk 빌드였습니다. 해당 패키지는 리눅스 환경에서 텍스트 파일이나 로그 파일의 내용을 조건에 맞게 추출하고, 필요한 값만 뽑아내거나 가공할 수 있게 해주는 도구입니다.
처음에는 단순히 문자열을 출력하거나 특정 필드만 확인한느 정도로 보일 수 있지만, 반복되는 로그 분석이나 설정 파일 확인, 그리고 원하는 값만 빠르게 정리해야 할 때 굉장히 유용하다는 걸 알 수 있었습니다.
특히 리눅스에서는 대부분의 정보가 텍스트 형태로 저장되기 때문에, 이런 데이터를 효율적으로 다룰 수 있다는 점에서 Gawk의 활용도가 높다고 느껴졌습니다.
정리하자면, Gawk는 단순한 출력 도구가 아니라 텍스트 데이터를 읽고, 조건을 걸고, 필요한 정보만 골라내서 원하는 형태로 재구성 하는 역할을 수행하는 패키지라고 볼 수 있습니다.
또 이런 방식은 이후 로그 분석, 시스템 점검, 쉘 스크립트 자동화 같은 작업에도 자연스럽게 이어질 수 있어서 리눅스 실습에서 꽤 중요한 도구라는 생각이 들었습니다. 여기까지 읽어주셔서 감사합니다.
'리눅스 > LFS' 카테고리의 다른 글
| [LFS11] IANA-etc 패키지 빌드 (1) | 2026.03.31 |
|---|---|
| [LFS10] 리눅스 탐색기 findutils 빌드 (0) | 2026.03.18 |
| [LFS8] 파일 및 디렉토리 검사를 위한 Diffutils 빌드 (0) | 2026.03.04 |
| [LFS7] 기본적인 명령어의 패키지 Coreutils 빌드 (0) | 2026.02.25 |
| [LFS6] 리눅스 시스템의 기본 쉘 Bash 빌드 (0) | 2026.02.11 |