k 은 유닉스 기반 운영 체제 (Linux, MacOs, Unix) shell programming에서 사용된다.
synopsis
awk 'pat
awk 은 유닉스 기반 운영 체제 (Linux, MacOs, Unix) shell programming에서 사용된다.
synopsis
awk 'pattern {action}' file
사용 예제
읽고 있는 열의 첫번째 값이 0이면 둘째값 출력
awk '$1==0 { print $2 }' file
옵션
-f 프로그램 파일 (패턴 저장한 awk파일)
-F 필드 구분자
전체 출력
awk < file '{print}'
awk < file '{print $0}'
숫자를 다루기
echo 5 4 | awk '{ print $1 $2 }'
54
붙여써준다.
echo 5 4 | awk '{ print $1, $2 }'
5 4
띄어 써준다
echo 5 4 | awk '{ print $1+$2 }'
9
계산해준다.
echo a z | awk '{ print $1 + $2 }'
0
문자는 계산 못한다.
awk 변수
FILENAME 현재 처리중인 파일 명
NF 필드 개수
NR 현재 레코드번호
외 예
awk '/west/' datafile : west 라는 글이 있는 줄 출력
awk '/^north/' datafile : north로 시작하는 줄 출력
awk '/^(no | so)/' datafile : no 또는 so 로 시작하는 줄 출력
awk '{ print $3, $2 }' datafile : datafile 리스트의 세 번째 와 두 번째 필드를 스페이스로 띄어서 출력
awk '{ print $3 $2 }' datafile : datafile 리스트의 세 번째 와 두 번째 필드를 그냥 붙여서 출력
awk '{ print "Number of fields : " NF} ' datafile : datafile의 각 줄마다의 필드수를 리턴한다.
awk '$5 ~ /\.[7-9]+/' datafile : 다섯 번째 필드가 마침표 다음엣 7과 9사이 숫자가 하나 이상 나오는 레코드 출력
awk '$2 !~ /E/ { print $1, $2 }' datafile : 두 번째 필드에 E 패턴이 없는 레코드의 첫 번째와 두 번째 필드 출력
awk '$3 ~ /^Joel/{ print $3 " is a nice guy."} ' datafile : 세 번째 필드가 Joel로 시작하면 “ is a nice guy”와 함께 출력
awk '$8 ~ /[0-9][0-9]$/ { print $8 }' datafile : 여덟 번째 필드가 두 개의 숫자이면 그 필드가 출력
awk '$4 ~ /Chin$/ { print "The price is $" $8 "." }' datafile : 네 번째 필드가 Chine으로 끝나면 “The price is $” 8번 필드 및 마침표가 출력
awk -F: '{ print $1 } ' datafile : -F 옵션은 입력 필드를 ‘:’로 구별.
awk -F"[ :]" '{ print $1, $2 } ' datafile : 입력 필드로 스페이스와 ‘:’를 필드 구별자로 사용
'명령어 등등' 카테고리의 다른 글
Makefile에 .obj 폴더 생성하기 (0) | 2021.06.23 |
---|---|
라인 회원가입 앱으로만 가능한듯 (0) | 2021.05.12 |
ㅋㅋㅋ말도 안돼.. errcertinvalid 문제 해결방법 ㅋㅋㅋ (0) | 2021.02.11 |
iterm2 세팅하기 / vim 색깔 입히기 (0) | 2020.11.23 |
norminette -R .. errors (0) | 2020.07.04 |
노미네이터norminette 에러 설명 (0) | 2020.07.03 |
리눅스 /우분투 gcc 설치 오류 해결 sudo apt-get install gcc (4) | 2020.07.03 |
리눅스 맨 마지막 개행 문자 지우기 (0) | 2020.07.02 |