수색…


소개

awk 는 패턴이 일치하면 취할 패턴과 액션을 중괄호로 묶어 구성됩니다. 가장 기본적인 패턴은 모든 레코드와 일치하는 빈 패턴입니다. 가장 기본적인 동작은 { print } 와 같은 비어있는 동작이며 { print $0 } . 패턴과 액션이 모두 비어 있다면, awk 는 아무 일도하지 않을 것입니다.

다음 프로그램은 입력을 단순히 에코합니다 (예 :

awk '{ print }' /etc/passwd

{ print } 는 기본 동작이므로 실제 값이 어떤 레코드와도 일치하기 때문에 해당 프로그램을 다음과 같이 다시 작성할 수 있습니다.

awk '1' /etc/passwd

가장 일반적인 유형의 패턴은 대개 슬래시로 묶인 정규 표현식입니다. 다음 프로그램은 적어도 두 번 이상의 문자 o 가 포함 된 모든 레코드를 인쇄합니다 (예 :

awk '/oo+/ { print }' /etc/passwd

그러나 임의의 표현식을 패턴으로 사용할 수 있습니다. 다음 프로그램은 그룹 0 (필드 4)에있는 사용자의 이름 (필드 1)을 인쇄합니다. 예를 들면 다음과 같습니다.

awk -F: '$4 == 0 { print $1 }' /etc/passwd

정확하게 일치하는 대신 정규 표현식과 일치시킬 수도 있습니다. 다음 프로그램은 그룹 ID에 하나 이상의 0이있는 그룹의 모든 사용자 이름을 인쇄합니다.

awk -F: '$4 ~ /0/ { print $1 }' /etc/passwd

필터 선 길이

이 패턴을 사용하면 길이에 따라 선을 필터링 할 수 있습니다.

$cat file
AAAAA
BBBB
CCCC
DDDD
EEEE

$awk 'length($0) > 4 { print $0 }' file
AAAAA
$

어쨌든 패턴을 사용하면 다음 코드 블록을 실행할 수 있습니다. AWK기본 동작이 현재 행 {print} 인쇄하고 있으므로이 작업을 실행할 때 동일한 결과가 표시됩니다.

$awk 'length($0) > 4 ' file
AAAAA


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow