Linux - 10. awk
by jennysgapawk
awk는 개발자 3명의 이니셜을 따서 만든 이름으로 주로 연산등을 명령 줄에서
수행하기 위해 만든 명령. C언어 문법 및 함수 적용이 가능.
* awk명령의 장점은 기존 유닉스 계열 명령이 필드에 대한 작업이 불가능했는데,
작업 시 필드에 대한 처리가 가능하도록 만들어짐.
[사용법] # awk [-option] 'Action' 텍스트파일
<Action>
/pattern/ - 검색 기능
/pattern/{print $1, $2, $3 ....} - 검색 후 특정 필드들 출력
{print $1, $2, ... } - 특정 필드들 출력 시
<사용예>
awk -F: '{print $1, $3, $4, $6}' /etc/passwd
awk -F: '{print $1, $3}' /etc/group
awk -F: '/root/{print $1, $3}' /etc/group
* -F: : 필드구별자로 ':'을 사용, 기본적인 필드 구별자는 space를 사용.
* 필드의 표시 $1, $2, .... 로 표시, $0는 라인 전체 출력. 필드는 원하는 위치대로 배열이 가능. $2, $1
* 출력 결과물의 필드구별자 조정 ',' 대신 "\t", "\n" 등을 사용할 수 있음.
* 측별한 표현식
# awk -F : '{print NR":",$0}' /etc/group NR : Number of Record 숫자뒤에 붙일수있음 ex) 1: 2:
# awk -F : '{print NR":"NF}' /etc/group NF : Number of field 필드 확인할 때 (내용은 안나오고 확인만 가능)
# awk '{FS=":"} {print $1,$2}' FS : Field Seperate 옵션 해제할 때
# awk '{OF="\t"} {print $1,$2}' /etc/group OF : Output Field Seperate
# awk 'BEGIN{print"+++++++++++++++++++HEAD LINE++++++++++++++++++++"}{FS=":"}{print $1,$2,$7}'/etc/group
EGIN{} : Head line 삽입 특별한 액션 라인마다 동작하는게아니라 라인들어가기 직전에 동작
# awk -F'{print NR,$1,$2,$3} END{print "Total line : " NR}/etc/passwd
END{} : End Pattern(주로 수식 등의 계산에 사용)
'BOX' 카테고리의 다른 글
Linux - 12. 기타 명령 (0) | 2016.12.07 |
---|---|
Linux - 11. 퍼미션 (0) | 2016.12.07 |
Linux - 09. sed에디터 (0) | 2016.12.07 |
Linux - 08. 확장 명령(grep, find) (0) | 2016.12.07 |
Linux - 07. Vi 편집기 (0) | 2016.12.07 |
블로그의 정보
jennysgap
jennysgap