"linux/cmd/awk"의 두 판 사이의 차이
Redjini WiKi
(차이 없음)
|
2018년 5월 14일 (월) 14:43 기준 최신판
- 리눅스 명령어 > awklinux/cmd/awk
- 리눅스 명령어 > chkconfiglinux/cmd/chkconfig
- 리눅스 명령어 > datelinux/cmd/date
- 리눅스 명령어 > freelinux/cmd/free
- 리눅스 명령어 > iostatlinux/cmd/iostat
- 리눅스 명령어 > lastlinux/cmd/last
- 리눅스 명령어 > lastblinux/cmd/lastb
- 리눅스 명령어 > lastloglinux/cmd/lastlog
- 리눅스 명령어 > lsoflinux/cmd/lsof
- 리눅스 명령어 > pidoflinux/cmd/pidof
- 리눅스 명령어 > uptimelinux/cmd/uptime
사용법
awk [-f 프로그램파일] [-F 필드구분자] ["패턴{액션}"] [처리할 파일명]
옵션
- -f 프로그램 파일 : awk 유틸리티의 실행 액션이 저장된 프로그램 파일을 지정
- -F 필드 구분자 : 필드 구분자를 지정
- "패턴{액션}" : 패턴이 일치하면 액션이 실행된다.
사용예
- text.txt 파일에서 ":" 구부자를 이용하여 1번째와 6번째 필드를 출력
$> awk -F : '{print $1, $6}' ./text.txt
- text.txt 파일에서 1번째 값이 10보다 큰경우 3,4번째 필드를 출력
$> awk '$4 > 10 {print $3 $4}' ./text.txt
패턴과 액션의 구조
awk의 옵션 중의 하나였던 ["패턴{액션}"] 에서도 여러가지 구조가 존재한다. 가장 대표적인 3가지
- - BEGIN
- 첫번째 레코드를 읽기 전에 지정된 액션을 실행
- - END
- 마지막 레코드를 읽고 난 후, 지정된 액션을 실행
- - PATTERN
- 입력되는 각 라인(레코드)별로 실행되며, 만약 그 라인이 패턴과 일치할 경우 액션이 실행된다.
- 정규표현식의 경우 "/정규식/" 으로 나타낸다.
- 패턴만 있는 경우 : 패턴과 일치하는 라인을 화면에 출력한다.
- 액션만 있는경우 : 모든 라인이 액션의 대상이 된다.
시스템 변수
awk가 내부적으로 인식하는 변수들이다. 이것을 이용하면 조금 더 효율적으로 사용 할 수 있다.
변수명 | 내용 |
---|---|
FILENAME | 현재 처리중인 파일명 |
FS | 필드 구분자로 디폴트는 공백 |
RS | 레코드 구분자로 디폴트는 새로운 라인 |
NF | 현재 레코드의 필드 개수 |
NR | 현재 레코드의 번호 |
OFS | 출력할 때 사용하는 FS |
ORS | 출력할 때 사용하는 RS |
$0 | 입력 레코드의 전체 |
$n | 입력 레코드의 n번째 필드 |