파워셸에서 개체의 두 가지 속성을 기반으로 고유한 개체를 선택하려면 어떻게 해야 합니까?
속성이 6개인 개체 배열이 있습니다.다음과 같이 표시됩니다.
$csvData
CURRENT DATE AND TIME : 07/10/2015 08:17:17 CST
USER NAME : userName
COMPUTER NAME : computerName
IP ADDRESS : 192.168.1.1
LOGON SERVER : logonServer
LOGON/OFF : logon
사용자 이름과 컴퓨터 이름이 중복되지 않는 개체 배열을 만들고 싶습니다.파워셸에서 고유한 사용자 이름/컴퓨터 이름 콤보만 가져오려면 어떻게 해야 합니까?궁극적으로 모든 중복 항목을 제거하고 중복 항목의 수를 추적하는 속성 'Count'를 추가하고 싶습니다.
시도해 본 결과:
$csvDataUnique = $csvData | Select-Object 'User Name','Computer Name' -Unique
$csvDataUnique = $csvData | sort -Property 'User Name' | Get-Unique
마티아스의 답변과 매우 유사하지만 출력에 모든 열이 포함됩니다.
$csvDataUnique = $csvData |
Group-Object 'User Name','Computer Name' |
%{ $_.Group | Select 'User Name','Computer Name' -First 1} |
Sort 'User Name','Computer Name'
다른 답변은 최종 출력의 나머지 속성을 유지하지 못했습니다.이 방법은 다음과 같습니다.
$csvDataUnique = $csvData | Group-Object -Property 'User Name', 'Computer Name' | ForEach-Object { $_.Group[0] }
사용자 지정 속성을 생성할 수 있습니다.Select-Object
그래서 당신은 이미 꽤 가까웠군요.사용해 보십시오.
Select-Object @{Label = "Index"; Expression = {"$($_.'User Name') $($_.'Computer Name')"} } -Unique
기본적으로 두 필드를 하나의 문자열로 결합하고 고유한 정렬을 수행합니다.저는 그 분야를 "Index"라고 불렀지만, 그것은 아무 것이나 부를 수 있었습니다.
다른 옵션은 다음을 사용하는 것입니다.Get-Unique
각 루프에 대한 확장 없이 고유한 속성을 기반으로 객체를 선택하고자 할 때 도움이 되었습니다.
$csvData | Sort-Object 'User Name', 'Computer Name' | Get-Unique -AsString
다음과 같은 이유로 개체를 정렬해야 합니다.Get-Unique
인접한 문자열을 비교합니다.또한 비교는 대소문자를 구분합니다.
저는 보통 해시 테이블을 사용하며, 이러한 작업에 대한 키에 대한 속성 값을 결합했습니다.
$CSVDataUnique = @{}
$csvData | foreach {
$CSVDataUnique["$_.'User Name'\$_.'Computer Name'"]++
}
사용할 수 있습니다.Group-Object
여러 속성으로 그룹화:
$Uniqs = $csvData | Group -Property "USER NAME","COMPUTER NAME" -NoElement | Select -Expand Name
언급URL : https://stackoverflow.com/questions/31343752/how-can-you-select-unique-objects-based-on-two-properties-of-an-object-in-powers
'bestsource' 카테고리의 다른 글
고정 테이블 셀 폭 (0) | 2023.08.12 |
---|---|
목록에서 가장 오래된/가장 어린 날짜/시간 개체 찾기 (0) | 2023.08.12 |
어레이에서 여러 Ajax 호출 및 완료 시 콜백 처리 (0) | 2023.08.12 |
비 MAC OS에서 npm 설치 스팅 fevent 경고를 해결하는 방법은 무엇입니까? (0) | 2023.08.12 |
유닛 테스트 Spring @Around AOP (0) | 2023.08.12 |