출처

http://www.thegeekstuff.com/2010/01/awk-introduction-tutorial-7-awk-print-examples/

http://cs.canisius.edu/ONLINESTUFF/PL_TUTORIALS/AWK/awk.examples


awk 명령 옵션 모음





# 파일 전체 출력
$ awk '{print;}' example1
100  Thomas  Manager    Sales       $5,000
200  Jason   Developer  Technology  $5,500
300  Sanjay  Sysadmin   Technology  $7,000
400  Nisha   Manager    Marketing   $9,500
500  Randy   DBA        Technology  $6,000

# 특정 패턴 매칭 출력
$ awk '/Thomas/             # 엔터키로 패턴 추가
> /Nisha/' example1
100  Thomas  Manager    Sales       $5,000
400  Nisha   Manager    Marketing   $9,500

특정 열만 출력
$ awk '{print $2, $5}' ./example1
$ awk '{print $2, $NF}' ./example1   # NF는 마지막 필드를 뜻함
Thomas $5,000
Jason $5,500
Sanjay $7,000
Nisha $9,500
Randy $6,000


특정 범위만 출력
$ awk '$1 > 300' example1    # 1열이 300보다 크면 출력
400  Nisha   Manager    Marketing   $9,500
500  Randy   DBA        Technology  $6,000


지정된 열에 지정된 스트링과 일치하는 라인만 출력
$ awk '$4 ~/Technology/' ./example1       # 4열에 Technology가 있으면 출력
200  Jason   Developer  Technology  $5,500
300  Sanjay  Sysadmin   Technology  $7,000
500  Randy   DBA        Technology  $6,000   


지정된 라인에 지정된 스트링과 매칭하는 라인의 개수 출력
# 4열에 Technology 매칭되면 count를 증가 시켜서 그 개수를 출력해줌
$ awk 'BEGIN { count=0;}         # 엔터
> $4 ~ /Technology/ { count++; }   # 엔터
> END { print "Number of employees in Technology Dept =",count;}' example1    
Number of employees in Technology Dept = 3       


라인별 length 비교하여 출력
$ awk 'length == 7 {print $0}' last_name   # 라인의 length가 7이면 출력
진 陈
번 樊
보 寶
순 順
...


반응형

+ Recent posts