본문 바로가기
개발/linux

bash기초 - awk

by 가시죠 2021. 1. 18.
반응형

awk

입력파일들의 행들을 하나씩 읽으면서 각 행의 단어들을 필드들로 읽어 들인다.

 

awktest.txt

홍 길동
김 갑수
kim js
park po

 

awktest.txt 파일 중 각 행의 두번째 단어가 "길동"인 행을 출력

$awk '$2 == "길동" {printf $0}' awktest.txt

홍 길동
  • $0 : 읽어들인 행
  • $1 : 첫번째 단어
  • $2 : 두번째 단어

 

디렉토리 목록 중 첫번째 컬럼만 출력

$ ls -l | awk '{print $1}'

 

디렉토리 목록 중 파일명과 사이즈만 출력 (아홉번째 컬럼, 다섯번째 컬럼)

$ ls -l | awk '{print $9, $5}'
$ ls -l | awk '{print "FILENAME:"$9, "SIZE:"$5}'

 

디렉토리 목록 중 사이즈를 모두 더해서 결과만 출력

$ ls -l | awk '{sum+=$5} END {print sum}'

 

디렉토리 목록 중 파일 사이즈별로 소팅해서 10000 바이트보다 큰 것만 출력

$ ls -l | sort -k 5 | awk '$5 >= 10000 {print}'

 

암호 파일에서 콜론(")을 구분자로 잘라서 첫번째 컬럼만 출력

$ cat /etc/passwd | awk -F":" '{print $1}'

 

반응형

댓글