열 단위로 정리되어 있는 텍스트 파일에서 데이터를 뽑아낼 때 사용한다.
문법: awk <pattern> {action}
<pattern>
-F : 필드구분자
{action}
action은 문장으로 이루어져 있다. action은 간단하게 상수 하나로 이루어질 수 도 있고, 개행 문자나 세미콜론(;)에 의해 분리된 몇 개의 문장의 연속으로 구성될 수 도 있다.
print : 특정 규칙에 맞게 데이터를 화면에 출력한다.
$1, $2, ... $n : 필드 번호
$NF : 마지막 필드
예제1
awk -F ':' '{ print $1 }' filename //입력 필드를 ':'로 구분
awk -F "[:]" '{ print $1 $2 }' filename //스페이스와 ':'로 입력 필드 구분
awk '/aaa/' filename //aaa라는 단어가 있는 라인 출력
awk '^aaa/' filename //aaa로 시작하는 라인 출력
awk '/^(aa | bb)/' filename //aa 또는 bb로 시작하는 라인 출력
예제2
/etc/tttt.txt의 경우
$ cat /etc/tttt.txt
Hello all, I've the same request.
$ cat /proc/cmdline | awk '{print $1}'
Hello
$ cat /proc/cmdline | awk '{print $2}'
all,
$ cat /proc/cmdline | awk '{print $3}'
I've
$ cat /proc/cmdline | awk '{print $4}'
the
$ cat /proc/cmdline | awk '{print $5}'
same
이런식으로 구분을 하여 옵션별로 떼어낼 수 있다.
$ cat /proc/cmdline | awk '{print NF}'
6
NF는 내부 변수로 컬럼의 갯수를 알려준다.
예제3
파일내용을 변수로 읽어오기(쉘 스크립트)
var=$(cat filename)
echo "$var"
'임베디드' 카테고리의 다른 글
Linux 쉘스크립트 문자열 자르기 (0) | 2015.07.15 |
---|---|
How to set timezone for imx6 with BSP of Yocto, rdate, hwclock (0) | 2015.07.06 |
grep명령어 (0) | 2015.06.26 |
쉘 스크립트 if문 및 쉘에서 인자 처리 (0) | 2015.06.23 |
리눅스 명령어#1 (0) | 2015.06.08 |