Get-Unique
정렬된 목록에서 고유한 항목을 반환합니다.
구문
Get-Unique [-AsString] [-InputObject <psobject>] [<CommonParameters>]
Get-Unique [-OnType] [-InputObject <psobject>] [<CommonParameters>]
설명
Get-Unique cmdlet은 정렬된 목록의 각 항목을 다음 항목과 비교하고 중복된 항목을 제거하여 각 항목의 한 인스턴스만 반환합니다. Cmdlet이 제대로 작동하려면 목록이 정렬되어 있어야 합니다.
매개 변수
-AsString
데이터를 문자열로 처리합니다. 이 매개 변수가 없으면 데이터가 개체로 처리되어 같은 유형의 개체 컬렉션(예: 파일 컬렉션)을 Get-Unique에 전송할 때 하나(첫 번째)만 반환합니다. 이 매개 변수를 사용하여 파일 이름과 같이 개체 속성의 고유한 값을 찾을 수 있습니다.
필수 여부 |
false |
위치 |
named |
기본값 |
|
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
-InputObject <psobject>
Get-Unique에 대한 입력을 허용합니다. 개체가 포함된 변수를 입력하거나 개체를 가져오는 명령 또는 식을 입력하십시오.
Get-Unique는 InputObject를 컬렉션으로 사용하여 전송한 입력을 처리하며 컬렉션의 개별 항목을 열거하지 않습니다. 컬렉션은 단일 항목이므로 InputObject를 사용하여 전송한 입력은 항상 변경되지 않은 상태로 반환됩니다.
필수 여부 |
false |
위치 |
named |
기본값 |
|
파이프라인 입력 적용 여부 |
true (ByValue) |
와일드카드 문자 적용 여부 |
false |
-OnType
각 유형에 대해 하나의 개체만 반환합니다.
필수 여부 |
false |
위치 |
named |
기본값 |
|
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
<CommonParameters>
이 cmdlet은 -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer, -OutVariable 등의 일반 매개 변수를 지원합니다. 자세한 내용은 about_commonparameters.
입력 및 출력
입력 유형은 cmdlet으로 파이프할 수 있는 개체의 유형입니다. 반환 유형은 cmdlet에서 반환되는 개체의 유형입니다.
입력 |
System.Management.Automation.PSObject 임의의 개체 유형을 Get-Unique로 파이프할 수 있습니다. |
출력 |
System.Management.Automation.PSObject Get-Unique가 반환하는 개체 유형은 입력에 의해 결정됩니다. |
참고
또한 해당 기본 제공 별칭("gu")으로 Get-Unique를 참조할 수 있습니다. 자세한 내용은 about_Aliases를 참조하십시오.
목록을 정렬하려면 Sort-Object를 사용하십시오. Sort-Object의 Unique 매개 변수를 사용하여 목록에서 고유한 항목을 찾을 수도 있습니다.
예 1
C:\PS>$a = $(foreach ($line in get-content C:\Test1\File1.txt) {$line.tolower().split(" ")}) | sort | get-unique
C:\PS> $a.count
설명
-----------
이들 명령은 텍스트 파일에서 고유한 단어의 수를 찾습니다.
첫 번째 명령은 File.txt 파일의 내용을 가져옵니다. 텍스트의 각 줄을 소문자로 변환한 다음 공백(" ")에서 각 단어를 별도의 줄로 분리합니다. 그런 다음 결과 목록을 사전순(기본값)으로 정렬하고 Get-Unique cmdlet을 사용하여 중복된 단어를 제거합니다. 결과가 $a 변수에 저장됩니다.
두 번째 명령은 $a에 있는 문자열 컬렉션의 Count 속성을 사용하여 $a에 있는 항목 수를 확인합니다.
예 2
C:\PS>1,1,1,1,12,23,4,5,4643,5,3,3,3,3,3,3,3 | sort-object | Get-Unique
설명
-----------
이 명령은 정수 집합의 고유한 수를 찾습니다. 첫 번째 명령은 명령줄에 입력한 정수의 배열을 가져오고 Sort-Object cmdlet으로 파이프하여 정렬한 다음 Get-Unique로 파이프하여 중복된 항목을 제거합니다.
예 3
C:\PS>get-childitem | sort-object {$_.GetType()} | unique -OnType
설명
-----------
이 명령은 Get-ChildItem cmdlet을 사용하여 파일과 디렉터리를 비롯한 로컬 디렉터리의 내용을 검색합니다. 파이프라인 연산자(|)는 결과를 Sort-Object cmdlet으로 보냅니다. "$_.GetType()" 문은 GetType 메서드를 각 파일이나 디렉터리에 적용합니다. 그런 다음 Sort-Object가 유형별로 항목을 정렬합니다. 다른 파이프라인 연산자는 정렬된 결과를 Get-Unique로 보냅니다. OnType 매개 변수는 Get-Unique에 지시하여 각 유형에 대해 하나의 개체만 반환하도록 합니다.
예 4
C:\PS>get-process | sort-object | select processname | get-unique -asstring
설명
-----------
이 명령은 컴퓨터에서 실행 중인 프로세스 이름에서 중복된 이름을 제거하고 고유한 이름만 가져옵니다.
Get-Process 명령은 컴퓨터의 모든 프로세스를 가져옵니다. 파이프라인 연산자(|)는 Sort-Object로 결과를 전달합니다. Sort-Object는 기본적으로 ProcessName에 따라 사전순으로 프로세스를 정렬합니다. 결과가 Select-Object cmdlet으로 파이프되고 Select-Object cmdlet은 각 개체의 ProcessName 속성 값만 선택합니다. 그러면 결과가 Get-Unique로 파이프되어 중복된 항목을 제거합니다.
AsString 매개 변수는 Get-Unique에게 ProcessName 값을 문자열로 처리하도록 지시합니다. 이 매개 변수가 없으면 Get-Unique가 ProcessName 값을 개체로 처리하고 개체의 인스턴스를 하나만 반환합니다. 즉, 목록에서 첫 번째 프로세스 이름만 반환합니다.