포스트

리눅스 텍스트 처리: AWK를 활용한 명령어 출력 파싱

명령어 출력에서 특정 필드를 추출하는 스크립트 작성 가이드

리눅스 텍스트 처리: AWK를 활용한 명령어 출력 파싱

: AWK

  • 최초 작성일: 2023년 8월 23일(수)


##

###

1
sudo /usr/local/bin/app-version -v | gawk 'NR == 1 {print $2}'

이 명령어는 다음과 같은 구성 요소로 이루어진다:

  1. 권한 상승 (sudo)
  2. 프로그램 실행 (/usr/local/bin/app-version -v)
  3. 출력 파싱 (gawk를 통한 텍스트 처리)


##

1. sudo

  • 용도: 관리자 권한으로 명령어 실행
  • 특징: 보안 정책에 따른 권한 상승
  • 동작 방식: 사용자 인증 후 권한 상승

2.

1
/usr/local/bin/app-version -v
  • 경로: 시스템 전역 실행 파일이 위치한 표준 디렉토리
  • 옵션: -v (버전 정보 출력)
  • 예상 출력: “Version: 1.2.3”

3. AWK

1
| gawk 'NR == 1 {print $2}'

구성 요소 분석:

  • |: 파이프 연산자
  • gawk: GNU AWK 텍스트 처리 도구
  • NR == 1: 첫 번째 라인 선택
  • print $2: 두 번째 필드 출력


##

1.

1
2
3
4
5
# 
sudo /usr/local/bin/app-version -v | gawk 'NR == 1 {print $2}'

# 
1.2.3

2.

1
2
VERSION=$(sudo /usr/local/bin/app-version -v | gawk 'NR == 1 {print $2}')
echo "현재 버전: $VERSION"


##

1.

1
2
# 
gawk '$1 == "Version:" {print $2}'

2.

1
2
# 
gawk '{print $2, $3}'

3.

1
2
3
4
5
6
#!/bin/bash
if ! version=$(sudo /usr/local/bin/app-version -v | gawk 'NR == 1 {print $2}'); then
    echo "버전 정보 추출 실패"
    exit 1
fi
echo "추출된 버전: $version"


## AWK를 활용한 텍스트 처리는 리눅스 시스템에서 명령어 출력을 파싱하고 필요한 정보를 추출하는데 매우 효과적인 방법이다. 특히 버전 정보, 로그 파일, 시스템 상태 정보 등을 처리할 때 유용하게 활용할 수 있다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.