반응형
두 배열을 비교하고 일반적이지 않은 값을 얻습니다.
나는 두 배열의 내용을 비교하고 powershell을 사용하여 그들 사이에서 일반적이지 않은 값을 얻는 작은 논리를 원했습니다.
예를 들면
$a1=@(1,2,3,4,5)
$b1=@(1,2,3,4,5,6)
출력 인 $ c는 6
두 배열 사이의 흔하지 않은 값의 출력 인 " "값을 제공해야합니다.
누군가가 똑같이 나를 도울 수 있습니까! 감사!
PS > $c = Compare-Object -ReferenceObject (1..5) -DifferenceObject (1..6) -PassThru
PS > $c
6
$a = 1..5
$b = 4..8
$Yellow = $a | Where {$b -NotContains $_}
$Yellow
에있는 항목을 $a
제외한 모든 항목을 포함합니다 $b
.
PS C:\> $Yellow
1
2
3
$Blue = $b | Where {$a -NotContains $_}
$Blue
에있는 항목을 $b
제외한 모든 항목을 포함합니다 $a
.
PS C:\> $Blue
6
7
8
$Green = $a | Where {$b -Contains $_}
문제는 아니지만 어쨌든; 및 Green
모두에있는 항목을 포함합니다 .$a
$b
PS C:\> $Green
4
5
보다 Compare-Object
Compare-Object $a1 $b1 | ForEach-Object { $_.InputObject }
또는 객체가 속한 위치를 알고 싶다면 SideIndicator를 살펴보십시오.
$a1=@(1,2,3,4,5,8)
$b1=@(1,2,3,4,5,6)
Compare-Object $a1 $b1
배열을 먼저 정렬하지 않으면 결과가 도움이되지 않습니다. 배열을 정렬하려면 Sort-Object를 통해 실행합니다.
$x = @(5,1,4,2,3)
$y = @(2,4,6,1,3,5)
Compare-Object -ReferenceObject ($x | Sort-Object) -DifferenceObject ($y | Sort-Object)
시험:
$a1=@(1,2,3,4,5)
$b1=@(1,2,3,4,5,6)
(Compare-Object $a1 $b1).InputObject
또는 다음을 사용할 수 있습니다.
(Compare-Object $b1 $a1).InputObject
순서는 중요하지 않습니다.
이것은 도움이 될 것이며 간단한 해시 테이블을 사용합니다.
$a1=@(1,2,3,4,5) $b1=@(1,2,3,4,5,6)
$hash= @{}
#storing elements of $a1 in hash
foreach ($i in $a1)
{$hash.Add($i, "present")}
#define blank array $c
$c = @()
#adding uncommon ones in second array to $c and removing common ones from hash
foreach($j in $b1)
{
if(!$hash.ContainsKey($j)){$c = $c+$j}
else {hash.Remove($j)}
}
#now hash is left with uncommon ones in first array, so add them to $c
foreach($k in $hash.keys)
{
$c = $c + $k
}
참고 URL : https://stackoverflow.com/questions/6368386/comparing-two-arrays-get-the-values-which-are-not-common
반응형
'Programing' 카테고리의 다른 글
asyncio는 실제로 어떻게 작동합니까? (0) | 2020.12.03 |
---|---|
점진적 향상과 점진적 저하의 차이점은 무엇입니까? (0) | 2020.12.03 |
Homebrew를 재설치하는 가장 좋은 / 안전한 방법은 무엇입니까? (0) | 2020.12.03 |
iOS 6에서 주어진 너비로 NSAttributedString의 높이를 계산하는 방법 (0) | 2020.12.03 |
Java의 assert 문을 사용하여 메시지를 지정할 수 있습니까? (0) | 2020.12.03 |