PowerShell - 고유 값 필터링
아래 샘플과 유사한 정보를 포함하는 열이 있는 입력 CSV 파일이 있습니다.
805265
995874
805674
984654
332574
339852
앞의 두 문자를 기준으로 배열된 고유 값을 추출하고 싶으므로 위의 샘플을 사용하면 다음과 같은 결과를 얻을 수 있습니다.
80, 99, 98, 33
PowerShell을 사용하여 이를 달성하는 방법은 무엇입니까?
사용 및 매개변수-unique
:
$values =
'805265',
'995874',
'805674',
'984654',
'332574',
'339852'
$values |
Foreach-Object { $_.Substring(0,2) } |
Select-Object -unique
int로의 변환이 필요한 경우에는 그냥 다음으로 캐스트합니다.[int]
:
$ints =
$values |
Foreach-Object { [int]$_.Substring(0,2) } |
Select-Object -unique
나는 cmdlet을 사용할 것입니다.group
)의 경우:
가져오기-Csv foo.csv | 그룹 {$_.열 이름.부분 문자열(0, 2)} 카운트 이름 그룹----- ---- -----2 80 {805265, 805674}1 99 {995874}1 98 {984654}2 33 {332574, 339852}
해시 테이블을 사용할 수 있습니다.
$values = @(805265, 995874, 805674, 984654, 332574, 339852)
$ht = @{}
$values | foreach {$ht[$_ -replace '^(..).+','$1']++}
$ht.keys
99
98
33
80
처음 두 문자를 포함하는 항목으로 새 배열을 만든 다음 을 사용하여 다음과 같은 고유 항목을 제공할 수 있습니다.
$newArray = @()
$csv = Import-Csv -Path C:\your.csv
$csv | % {
$newArray += $_.YourColumn.Substring(0, 2)
}
$newArray | Select-Object -Unique
사용하는 대신 다른 옵션만 사용할 수 있습니다.Select-Object -unique
Get-Unique cmdlet(또는 해당 별칭)을 사용합니다.gu
; 자세한 설명은 여기 참조)를 참조하십시오(아래 설명 참조).
$values = @(805265, 995874, 805674, 984654, 332574, 339852)
$values | % { $_.ToString().Substring(0,2) } | Get-Unique
# Or the same using the alias
$values | % { $_.ToString().Substring(0,2) } | gu
언급URL : https://stackoverflow.com/questions/9825060/powershell-filtering-for-unique-values
'programing' 카테고리의 다른 글
@AttributeOverride가 있는 @Embeddable 항목의 JPA @ElementCollection (0) | 2023.10.26 |
---|---|
문자열 벡터에 대한 조인 연산자의 동등성은 무엇입니까? (0) | 2023.10.26 |
라디오 버튼의 색상을 어떻게 변경합니까? (0) | 2023.10.26 |
마스터 분기에서 커밋 방지 (0) | 2023.10.26 |
angularjs: 강제 재rendering/ 지시 템플릿 전체 새로 고침 (0) | 2023.10.26 |