웹사이트 검색

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

위의 명령에는 루트 사용자가 소유한 현재 디렉터리의 파일을 필터링하는 데 도움이 되는 (==) 비교 연산자가 포함되어 있습니다. 이는 $3== ”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 패턴으로 명령을 실행하면 해당 유형의 deal이 없기 때문에 아무것도 인쇄되지 않지만 Tech를 사용하면 다음과 같은 거래를 얻을 수 있습니다. 기술을 입력하세요.

따라서 이 비교 연산자를 사용할 때는 항상 주의하십시오. 위에서 본 것처럼 대소문자를 구분합니다.

파일에서 입력을 읽는 대신 항상 다른 명령의 출력을 awk의 입력으로 사용할 수 있습니다. 이는 위의 예에서 살펴본 것처럼 매우 간단합니다.

이해하기 쉽도록 예제가 명확했기를 바랍니다. 우려 사항이 있는 경우 아래 댓글 섹션을 통해 표현하고 awk 기능을 살펴볼 시리즈의 다음 부분을 확인하세요. 변수, 숫자 표현식, 할당 연산자 등이 있습니다.