파워셸 포함 연산자

파워셸 포함 연산자

PowerShell에서 주어진 입력 문자열과 일치하는 요소를 필터링/비교하거나 찾을 수 있는 다양한 연산자가 있습니다. -contains는 주요 비교 연산자 중 하나로, 포함 유형 연산자로 분류됩니다.

포함 유형 연산자는 총 네 가지가 있습니다.

  • -contains
  • -notcontains
  • -in
  • -notin

이 기사에서는 -contains 연산자에만 집중합니다. 이 연산자는 일치하는 경우 항상 부울 값(true/false)을 반환합니다. 또한 성능 면에서 -contains 연산자는 첫 번째 일치를 찾자마자 입력 비교를 중지하기 때문에 결과를 반환하는 데 매우 빠릅니다.

PowerShell의 -contains 연산자

이 연산자는 컬렉션이 특정 요소를 포함하는지 확인하는 데 사용됩니다. 구문은 다음과 같습니다.

[set / collection] -contains [test-value or test-object]

[set/collection]은 문자열 값 집합(쉼표로 구분됨)일 수 있습니다. 예를 들어, "Hello" 또는 "FOX", "2ndLane"입니다.

[test-value or test-object]는 요소 또는 요소 집합(컬렉션)일 수 있습니다. 예를 들어, "Hello" 또는 "Hello", "FOX", "No2"입니다.

특정 요소 확인

  • 예제 01:
"Hello", "FOX", "2ndLane" -contains "2ndLane"

출력:

True

입력 요소/값은 "2ndLane"이며, 이는 왼쪽에 있는 컬렉션/집합에 위치할 수 있습니다. 따라서 출력/결과는 분명히 True입니다.

  • 예제 02:
"Hello", "FOX", "2ndLane" -contains "NotInTheCollection"

출력:

False

입력 요소/값은 "NotInTheCollection"이며, 이는 오른쪽 컬렉션에 포함되어 있지 않습니다. 따라서 위의 명령은 False로 평가되었습니다.

-contains 연산자에 대한 중요한 사실은 주어진 컬렉션/집합 내에서 정확한 입력 요소를 확인한다는 것입니다. 부분 문자열이 입력 요소로 주어지면 명령은 False로 평가됩니다.

  • 예제 03:
"Hello", "FOX", "FullStringGiven" -contains "StringGiven"

출력:

False

위 예제에서 입력 요소는 "StringGiven"이지만, 이는 오른쪽 컬렉션의 "FullStringGiven" 요소의 부분 문자열입니다. 따라서 입력 요소는 오른쪽 컬렉션의 정확한 요소와 일치하지 않으며, 결과는 예상대로 False입니다.

PowerShell에서 -contains 연산자로 요소/컬렉션 집합 확인

-contains 연산자의 가장 큰 장점 중 하나는 주어진 컬렉션/집합이 입력 컬렉션과 일치하는지 찾는 데 사용할 수 있다는 점입니다. 이 연산자는 왼쪽(주어진 컬렉션)과 오른쪽(입력 컬렉션/테스트 컬렉션)에 동일한 인스턴스가 존재하는지 확인합니다. 즉, 입력 객체(테스트 객체)가 컬렉션일 때 이러한 포함 연산자는 참조 동등성을 사용합니다.

예제 01

$leftsideobj = "Hello", "NewString1"

여기에서 $leftsideobj 변수를 요소 집합(컬렉션)에 할당합니다.

$leftsideobj, "AnotherString" -contains $leftsideobj

그런 다음, -contains 연산자를 사용하여 일치를 찾습니다.

출력:

True

이 명령은 True로 평가되었습니다. 입력 컬렉션은 $leftsideobj이며, 동일한 인스턴스가 왼쪽 컬렉션에 있습니다. 이는 참조 동등성이 충족되었음을 의미합니다. 따라서 결과는 True입니다.

예제 02

$newleftsideobj = "Hello", "Test"

여기에서 $newleftsideobj 변수를 "Hello""Test" 요소가 포함된 컬렉션에 할당했습니다.

`"Hello", "Test", "NewString1" -contains $newleftsideobj`

출력:

False

위의 명령은 False로 평가되었습니다. 입력 컬렉션(오른쪽)은 $newleftsideobj이며, 이는 간접적으로 두 요소 "Hello""Test"를 포함합니다. 왼쪽 측면을 보면 "Hello""Test" 요소가 있지만, 이는 참조 동등성을 만족하지 않습니다. 그래서 출력은 False입니다.

튜토리얼이 마음에 드시나요? DelftStack을 구독하세요 YouTube에서 저희가 더 많은 고품질 비디오 가이드를 제작할 수 있도록 지원해주세요. 구독하다
Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.

관련 문장 - PowerShell Operator