Linux에서 STDIN의 Awk 입력을 읽는 방법-7 부
Awk 도구 시리즈의 이전 부분에서는 주로 파일에서 입력을 읽는 방법을 살펴 보았지만 STDIN에서 입력을 읽으려면 어떻게해야하나요?
이 Awk 시리즈 7 부에서는 파일에서 입력을 읽는 대신 다른 명령의 출력을 필터링 할 수있는 몇 가지 예를 살펴 보겠습니다.
ls 명령과 유사하게 작동하는 dir 유틸리티로 시작하겠습니다. 아래 첫 번째 예에서는 dir -l
명령의 출력을 Awk에 대한 입력으로 사용하여 소유자의 사용자 이름, 그룹 이름 및 파일을 인쇄합니다. / she는 현재 디렉토리에서 소유합니다.
# dir -l | awk '{print $3, $4, $9;}'

awk 표현식을 사용하는 또 다른 예를 살펴보십시오. 여기에서는 표현식을 사용하여 아래 awk 명령에서와 같이 문자열을 필터링하여 루트 사용자가 소유 한 파일을 인쇄하려고합니다.
# dir -l | awk '$3=="root" {print $1,$3,$4, $9;} '

위의 명령에는 루트 사용자가 소유 한 현재 디렉토리의 파일을 필터링하는 데 도움이되는 (==)
비교 연산자가 포함되어 있습니다. 이는 ==”root”
표현식을 사용하여 수행됩니다.
awk 비교 연산자를 사용하여 특정 문자열을 일치시키는 또 다른 예를 살펴 보겠습니다.
여기에서는 cat 유틸리티를 사용하여 tecmint_deals.txt라는 파일의 내용을보고 Tech 유형의 거래 만보고 싶으므로 다음 명령을 실행합니다.
# cat tecmint_deals.txt # cat tecmint_deals.txt | awk '$4 ~ /tech/{print}' # cat tecmint_deals.txt | awk '$4 ~ /Tech/{print}'

위의 예에서는 ~/pattern/
값 비교 연산자를 사용했지만 매우 중요한 것을 시도하고 가져 오는 두 가지 명령이 있습니다.
패턴 tech로 명령을 실행하면 해당 유형의 거래가 없기 때문에 아무것도 인쇄되지 않지만 Tech를 사용하면 Tech 유형의 거래가 표시됩니다.
따라서이 비교 연산자를 사용할 때는 항상주의해야합니다. 위에서 본 것처럼 대소 문자를 구분합니다.
파일에서 입력을 읽는 대신 awk의 입력으로 다른 명령의 출력을 항상 사용할 수 있습니다. 위의 예에서 살펴본 것처럼 매우 간단합니다.
예제가 이해하기에 충분히 명확했으면 좋겠고, 우려 사항이 있으시면 아래의 주석 섹션을 통해 표현할 수 있으며 변수, 숫자 표현식 및 할당 연산자.