웹사이트 검색

Linux에서 Awk와 비교 연산자를 사용하는 방법 - 4부


텍스트 줄의 숫자 또는 문자열 값을 처리할 때 비교 연산자를 사용하여 텍스트나 문자열을 필터링하면 Awk 명령 사용자에게 유용합니다.

Awk 시리즈의 이 부분에서는 비교 연산자를 사용하여 텍스트나 문자열을 필터링하는 방법을 살펴보겠습니다. 프로그래머라면 이미 비교 연산자에 익숙할 것입니다. 그렇지 않은 사람들은 아래 섹션에서 설명하겠습니다.

Awk의 비교 연산자는 무엇입니까?

Awk의 비교 연산자는 숫자나 문자열의 값을 비교하는 데 사용되며 다음을 포함합니다.

  1. > – 보다 큼
  2. < – 미만
  3. >= – 이상
  4. <= – 작거나 같음
  5. == – 같음
  6. != – 같지 않음
  7. some_value ~/패턴/ - some_value가 패턴과 일치하면 true
  8. some_value !~/패턴/ - some_value가 패턴과 일치하지 않으면 true

이제 Awk의 다양한 비교 연산자를 살펴보았으니 예제를 통해 더 잘 이해해 보겠습니다.

이 예에는 다양한 식품 품목에 대한 쇼핑 목록인 food_list.txt라는 파일이 있으며 ( **) 각 줄의 끝 부분에 있습니다.

No      Item_Name               Quantity        Price
1       Mangoes                    45           $3.45
2       Apples                     25           $2.45
3       Pineapples                 5            $4.45
4       Tomatoes                   25           $3.45
5       Onions                     15           $1.45
6       Bananas                    30           $3.45

Awk에서 비교 연산자를 사용하는 일반적인 구문은 다음과 같습니다.

expression { actions; }

위의 목표를 달성하려면 아래 명령을 실행해야 합니다.

# awk '$3 <= 30 { printf "%s\t%s\n", $0,"**" ; } $3 > 30 { print $0 ;}' food_list.txt

No	Item_Name`		Quantity	Price
1	Mangoes	      		   45		$3.45
2	Apples			   25		$2.45	**
3	Pineapples		   5		$4.45	**
4	Tomatoes		   25		$3.45	**
5	Onions			   15           $1.45	**
6	Bananas			   30           $3.45	**

위의 예에서는 두 가지 중요한 일이 발생합니다.

  1. 첫 번째 표현 { action ; } 조합, $3 <= 30 { printf "%s\t%s\n", $0,"**" ; } 30 이하의 수량이 있는 줄을 인쇄하고 각 줄 끝에 (**)를 추가합니다. $3 필드 변수를 사용하여 수량 값에 액세스합니다.
  2. 두 번째 표현 { action ; } 조합, $3 > 30 { print $0 ;} 수량이 30보다 크므로 변경되지 않은 행을 인쇄합니다.

또 하나의 예:

# awk '$3 <= 20 { printf "%s\t%s\n", $0,"TRUE" ; } $3 > 20  { print $0 ;} ' food_list.txt 

No	Item_Name		Quantity	Price
1	Mangoes			   45		$3.45
2	Apples			   25		$2.45
3	Pineapples		   5		$4.45	TRUE
4	Tomatoes		   25		$3.45
5	Onions			   15           $1.45	TRUE
6       Bananas	                   30           $3.45

이 예에서는 끝에 (TRUE)라는 단어를 사용하여 20 이하의 수량을 가진 행을 표시하려고 합니다.

요약

이것은 Awk의 비교 연산자에 대한 입문 튜토리얼이므로 다른 많은 옵션을 시도하고 더 많은 것을 발견해야 합니다.

직면한 문제나 염두에 두고 있는 추가 사항이 있는 경우 아래 댓글 섹션에 댓글을 남겨주세요. 복합 표현을 소개할 Awk 시리즈의 다음 부분을 읽어보세요.