명령어 등등

리눅스 awk 명령어

mcdn 2020. 7. 2. 17:55
반응형

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 }'

계산해준다. 

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 : 입력 필드로 스페이스와 ‘:’를 필드 구별자로 사용

 

 

awk_script.file

 

 

 

 

 

 

 

 

반응형