Duplikátumok eltávolítása a PowerShell-tömbből [3 módszer]
Select-Object használata a -Unique paraméterrel
Az ismétlődések eltávolítása a PowerShell tömbből:
- Használja a tömboperátort egy duplikált értékekkel rendelkező tömb létrehozásához.
- A
Select-Objectés a-Uniqueparaméter használatával egyedi értékeket választhat ki az előző lépésben létrehozott tömbből.
Használja a Select-Object -Egyedi paramétert:
$array = @(2,2,4,4,3,3,6,9,8,9,1,0)
$array = $array | Select-Object -Unique
$arrayKIMENET:
2
4
3
6
9
8
1
0Ehhez a kódhoz a tömboperátort (@()) használtuk, hogy létrehozzunk egy duplikált értékekkel rendelkező tömböt, és elmentettük a tömböt a $array változóba a hozzárendelési operátor segítségével (=). Vegye figyelembe, hogy a PowerShellben a változónevek elé egy $ jel kerül, például: $VariableName.
Ezután a Select-Object parancsmagot használtuk (ezt command-let-ként ejtik, a Windows PowerShellben használatos parancs) a -Unique paranccsal. paramétert, amellyel egyedi értékeket választhat ki az adott tömbből. Hogyan? Bontsuk fel a $array=$array | Select-Object -Unique parancsot, és értelmezze.
Először megadtuk a bemeneti tömböt ($array), és pipe (|) segítségével elküldtük az eredményeket a Select-Object parancsmagnak. Itt a csövet arra használták, hogy az előző parancs eredményeit elküldjék a következő parancsnak.
Ezután a Select-Object parancsmag kiválasztja az objektum/objektumkészlet adott tulajdonságait; ki tudja jelölni a megadott objektumokat egy adott indexben a tömbben, bizonyos számú objektumot és egyedi objektumokat.
Ezt a parancsmagot a -Unique paraméterrel használva egyedi értékeket választottunk ki az adott tömbből. Ezt követően a hozzárendelési operátorral frissítettük az eredeti tömböt.
Ne feledje, hogy a -Unique paraméter megkülönbözteti a kis- és nagybetűket, ami azt jelenti, hogy a Hello és a hello egyedi értéknek minősül. Nézzük meg a következő példában, amely karakterlánc típusú elemeket tartalmaz a tömbben.
Használja a Select-Object -Egyedi paramétert:
$array = @("Hello", "hello", "Hi", "Greetings", "Hi")
$array = $array | Select -Unique
$arrayKIMENET:
Hello
hello
Hi
GreetingsLáttad, mindkettőnk Hello és hello. Ez azért van így, mert a kis- és nagybetűk közötti különbséget a rendszer a -Unique paraméter egyedi értékének tekinti a Select-Object parancsmagnál (amelynek álneve Select ).
Sort-Object használata -Unique paraméterrel
Az ismétlődések eltávolítása egy tömbből a PowerShellben:
- A tömb operátorral hozzon létre egy tömböt ismétlődő értékekkel.
- A
Sort-Objectés a-Uniqueparaméter használatával távolítsa el az ismétlődő értékeket az első lépésben létrehozott tömbből.
Sort-Object használata -Egyedi paraméterrel:
$array = @(2,2,4,4,3,3,6,9,8,9,1,0)
$array = $array | Sort-Object -Unique
$arrayKIMENET:
0
1
2
3
4
6
8
9
Már megismertük a tömb létrehozását a tömboperátor használatával, a változó deklarációját és inicializálását, a hozzárendelési operátort, a pipe jelet, az egyedi értékek kiválasztását és a parancsmag végrehajtási folyamatát a Select-Object használata közben.
Ez a kódpélda hasonló ahhoz, amit a Select-Object tanulásakor használtunk; itt a Sort-Object parancsmagot használtuk, amely az objektum tulajdonságaitól függően csökkenő vagy növekvő sorrendbe tudja rendezni az objektumokat. Mit jelent ez?
Ez azt jelenti, hogy ha nem adjuk meg a rendezési tulajdonságot a Sort-Object-val, akkor az első bemeneti objektum alapértelmezett rendezési tulajdonságát fogja használni. Ne feledje, ha nincs alapértelmezett rendezési tulajdonság a bemeneti objektum típusához, akkor a PowerShell magukat az objektumokat fogja összehasonlítani. Bővebben itt olvashat róla
A karakterlánc-típusú tömbelemekkel végzett munka során a tulajdonságok a kis- és nagybetűk megkülönböztetése nélkül lesznek rendezve. Hogyan? Értsük meg a -Unique paraméterrel az alábbi Sort-Object parancsmaggal.
A Sort-Object használata -Unique -Case-Sensitive:
$array = @("Hello", "hello", "Hi", "Greetings", "Hi")
$array = $array | Sort-Object -Unique -CaseSensitive
$arrayKIMENET:
Greetings
hello
Hello
HiA fenti kódkerítés azt mutatta, hogy a -Unique paraméter a Hello és a hello paramétert egyedi értéknek tekinti, ha a -CaseSensitive paraméter adott. Ezenkívül a Sort-Object parancsmag használatával az elemek ábécé sorrendbe kerülnek, figyelembe véve az esedékes első betűt.
Ha nem tesz különbséget a kis- és nagybetűk között, hagyja ki a -CaseSensitive paramétert, és használja a következő parancsot.
A Sort-Object használata az -Unique-val:
$array = @("Hello", "hello", "Hi", "Greetings", "Hi")
$array = $array | Sort-Object -Unique
$arrayKIMENET:
Greetings
Hello
Hi
Használhatjuk a Sort-t is, a következőképpen, a Sort-Object parancsmag álneveként.
A Sort with -Unique használata:
$array = @("Hello", "hello", "Hi", "Greetings", "Hi")
$array = $array | Sort -Unique
$arrayKIMENET:
Greetings
Hello
HiA Get-Unique és a Sort-Object használata
Az ismétlődések eltávolítása egy tömbből a PowerShellben:
- Egy tömboperátor segítségével hozzon létre egy tömböt, amely ismétlődő értékeket tartalmaz.
- A
Sort-Objecthasználatával rendezheti az adott tömböt, és aGet-Uniquesegítségével távolíthatja el az ismétlődő értékeket a megadott tömbből.
A Get-Unique használata a Sort-Object funkcióval:
$array = @(2,2,4,4,3,3,6,9,8,9,1,0)
$array = $array | Sort-Object | Get-Unique
$arrayKIMENET:
0
1
2
3
4
6
8
9Az előző részben már tanultunk a Sort-Object-ról. Itt a Get-Unique parancsmagot használtuk a Sort-Object parancsmaggal, hogy eltávolítsuk az ismétlődő értékeket az adott tömbből.
Felmerülhet a kérdés, miért kellene a Get-Unique parancsmagot a Sort-Object parancsmaggal együtt használnunk. Ennek az az oka, hogy a Get-Unique parancsmag egyedi értékeket választ ki, ha a tömb rendezve van. Tehát hogyan a parancs $array=$array | Sort-Object | A Get-Unique végrehajtása megtörtént?
Először a bemeneti tömböt ($array) adtuk meg, és annak eredményeit egy csőjel segítségével továbbítottuk a Sort-Object parancsmagba. Ezután a Sort-Object parancsmag növekvő sorrendbe rendezte a bemeneti tömböt, amely a $array alapértelmezett rendezési tulajdonsága volt. Ezt követően egy másik csővel továbbítottuk a rendezett tömböt a Get-Unique parancsmagba.
Most a Get-Unique parancsmag összehasonlította a megadott rendezett tömb minden elemét a következővel, eltávolította az azonos értékeket, és minden elemhez csak egy példányt adott vissza. Végül rendezett egyedi értékeket rendeltünk a $tömbhöz a hozzárendelési operátor (=) használatával.
A -Unique paraméterhez hasonlóan a Get-Unique is megkülönbözteti a kis- és nagybetűket, ami azt jelenti, hogy a karakterláncok, amelyekben eltérő a kis- és nagybetűk írásmódja, egyedi értéknek minősülnek. Tekintse meg a következő példát a bemutatóhoz.
A Get-Unique használata a Sort-Object funkcióval:
$array = @("Hello", "hello", "Hi", "Greetings", "Hi")
$array = $array | Sort-Object | Get-Unique
$arrayKIMENET:
Greetings
Hello
hello
HiEz minden arról szól, hogyan távolíthatja el a duplikációkat a PowerShell Array-ből.