리눅스 텍스트 처리: AWK를 활용한 명령어 출력 파싱
명령어 출력에서 특정 필드를 추출하는 스크립트 작성 가이드
리눅스 텍스트 처리: AWK를 활용한 명령어 출력 파싱
: AWK
- 최초 작성일: 2023년 8월 23일(수)
##
###
1
sudo /usr/local/bin/app-version -v | gawk 'NR == 1 {print $2}'
이 명령어는 다음과 같은 구성 요소로 이루어진다:
- 권한 상승 (sudo)
- 프로그램 실행 (/usr/local/bin/app-version -v)
- 출력 파싱 (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 라이센스를 따릅니다.