awk 와 sed 사용법

“awk 는 유닉스에서 처음 개발된 스크립트 언어로 텍스트 형태로 되어있는 데이타를 필드로 구분하여 처리하는 기능을 기본으로 합니다. 주로 패턴검색과 조작을 통해 레포트를 만드는 등의 작업에 사용됩니다. 여기서는 awk 와 sed의 사용법과 예제를 설명합니다.

### 바로가기(연관) ###
리눅스 기본 명령어
>> awk 와 sed 사용법
쉘스크립트 강좌


1. awk 프로그램 구조
1) awk 프로그램의 구조
awk 옵션 ‘패턴 {액션}’ 파일명

2) awk 의 패턴
BEGIN      입력화일을 읽어들이기 전 옆에 제시되는 문자열을 실행
END          awk 가 모든 입력을 처리한 후 옆에 제시되는 문자열을 실행
/문자열/   문자열과 일치하는 라인을 찾아 액션을 실행

3) awk 의 연산자
=   +=   -=  *=   /=   %=    배정연산자
+   –   *   /   %   ++   —      산술연산자
||   &&   !                        논리연산자(OR, AND, NOT)
>   >=   <   <=   ==   !=     비교연산자
v ~p                                 변수 v가 패턴 P에 부합되면 참
v !~p                                변수 v가 패턴 P에 부합되지 않으면 참

4) 액션
print
printf
if (expression) statement else statement
while (expression) statement else statement
for (expression; espression; espression) statement
for (variable in array) statement
break
continue
next
exit

5) awk 에 미리 정의된 변수
변수        내용
FILENAME  현재 처리되고 있는 입력 파일의 이름
FS           입력 필드 분리문자
NR          현재 레코드(행)의 번호
NF          현재 레코드(행)의 필드의 갯수
OFS        출력되는 필드의 분리문자

2. awk 사용예제 
1) date 명령의 결과값을 awk 로 년도와 월만 출력하는 보고서 형태

2) /etc/passwd 파일을 ‘:’ 구분자로 나누어 세번째 필드 uid 가 500 이상인 경우 첫번째 필드 출력
,TAB 을 구분자로 출력

3) ClamAV 스캔결과 감염된 파일에 대한 내용을 수합한 파일 test.txt 에서 전체 합계를 구하기

– 여려개의 txt 파일에서 한번에 합계 구하기

4) 로그인 정보 중 root 가 로그인한 로그 중 부팅시 발행한 로그를 제외하고 출력

5) ‘/home’ 파티션의 사용 비율을 % 없이 정수표현 하고 싶을 때


3. sed 사용법

1) 찾기 및 출력

2) 치환

3) 추가

4) 삭제

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다