Weboldal keresés

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 -Unique paramé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
$array

KIMENET:

2
4
3
6
9
8
1
0

Ehhez 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
$array

KIMENET:

Hello
hello
Hi
Greetings

Lá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 -Unique paramé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
$array

KIMENET:

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
$array

KIMENET:

Greetings
hello
Hello
Hi

A 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
$array

KIMENET:

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
$array

KIMENET:

Greetings
Hello
Hi

A 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-Object használatával rendezheti az adott tömböt, és a Get-Unique segí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
$array

KIMENET:

0
1
2
3
4
6
8
9

Az 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
$array

KIMENET:

Greetings
Hello
hello
Hi

Ez minden arról szól, hogyan távolíthatja el a duplikációkat a PowerShell Array-ből.

Kapcsolódó cikkek