Weboldal keresés

PowerShell: Hogyan lehet eltávolítani a duplikációkat a tömbből?


A PowerShell egy hatékony szkriptnyelv, amelyet széles körben használnak az IT-iparban a feladatok automatizálására. Ez egy parancssori shell és szkriptnyelv, amely a .NET keretrendszerre épül. A PowerShellben a szakemberek egyik leggyakoribb feladata a tömbökkel való munka. A tömbök olyan adatok gyűjteményei, amelyek egyetlen változóban tárolhatók, és index segítségével érhetők el. A duplikátumok tömbökből való kiválogatása fárasztó és időigényes lehet a kódolók számára. Szerencsére a PowerShell egy könnyen használható megoldást kínál a duplikációk eltávolítására a tömbökből. Ebben a blogbejegyzésben megvizsgáljuk, hogyan távolíthatjuk el a duplikációkat a PowerShell tömbjéből, és hogyan javíthatjuk a kódolási hatékonyságot.

A tömbök duplikátumainak megértése

Egyszerűen szólva, a tömbök arra szolgálnak, hogy egy változóban szervezett módon tároljanak egy adatlistát. A tömb ismétlődése akkor következik be, ha egynél több azonos értékű elem van. Ez problémákat okozhat a tömbbel való munka során, mert helytelen eredményekhez vagy hibákhoz vezethet. Tehát a duplikátumok eltávolítása egy tömbből fontos az adatok pontosságának biztosítása érdekében. Itt jön jól a PowerShell!

Módszerek a duplikációk eltávolítására egy tömbből a PowerShellben

Számos módszer létezik a duplikációk eltávolítására egy tömbből a PowerShellben. Íme néhány a leggyakoribb módszerek közül:

1. módszer: A Select-Object parancsmag használata egyedi értékek lekéréséhez

A Select-Object parancsmag egy objektum adott tulajdonságainak kiválasztására szolgál. Használható egyedi értékek lekérésére is egy tömbből. Ha a Select-Object parancsmagot szeretné használni, hogy egyedi értékeket kapjon egy tömbből, használja a következő parancsot:


$Array = @(1, 2, 2, 3, 4, 4, 5, 6, 6, 7)
$Array | Select-Object -Unique

Ez a parancs eltávolítja az összes ismétlődést a tömbből, és csak a tömb egyedi elemeit hagyja meg.

Kimenet :


1
2
3
4
5
6
7

Íme egy másik példa arra, hogyan lehet egyedi értékeket kapni egy karakterlánc tömbből:


# Sample string array with duplicates
$StringArray = "SharePoint", "Microsoft 365", "PowerShell", "SharePoint", "PowerShell"

# Create a new array to store unique strings
$UniqueArray = $StringArray | Select-Object -Unique

# Output the unique array
$UniqueArray

Kimenet :


SharePoint
Microsoft 365
PowerShell

2. módszer: A Sort-Object parancsmag használata az ismétlődések eltávolításához

A Sort-Object parancsmag az objektumok egy vagy több tulajdonság szerinti rendezésére szolgál. Használható a duplikációk eltávolítására is egy tömbből. Ha a Sort-Object parancsmaggal szeretné eltávolítani a duplikációkat egy tömbből, használja a következő parancsot:


$Array = @(1, 2, 2, 3, 4, 4, 5, 6, 6, 7)
$Array | Sort-Object -Unique

Ha kis- és nagybetűket megkülönböztető ismétlődést szeretne eltávolítani, íme egy példa:


# Sample string array with duplicates
$stringArray = "SharePoint", "Microsoft 365", "PowerShell", "SharePoint", "powershell"

# Create a new array to store unique strings
$uniqueArray = $stringArray | sort-Object -CaseSensitive -Unique

# Output the unique array
$uniqueArray

Kimenet :


Microsoft 365
powershell
PowerShell
SharePoint

3. módszer: A Get-Unique parancsmag használata az ismétlődések eltávolításához

A PowerShell egyszerű és hatékony módszert kínál a duplikált bejegyzések eltávolítására egy tömbből a Get-Unique parancsmag használatával. Ne feledje azonban, hogy a Get-Unique csak rendezett listákon működik. Ha nem biztos abban, hogy a lista rendezve van-e, a Get-Unique előtt használhatja a Sort-Object parancsot. Ha a Get-Unique parancsmaggal szeretné eltávolítani a duplikációkat egy tömbből, használja a következő parancsot:


$Array = @(1, 2, 2, 3, 4, 4, 5, 6, 6, 7)
$UniqueArray = $array | Sort-Object | Get-Unique
$UniqueArray  # Outputs: 1 2 3 4 5 6 7

Íme a fenti szkriptek eredménye:

Hogyan lehet ismétlődőket találni a Group-Object parancsmag segítségével?

A Group-Object parancsmag az objektumok egy vagy több tulajdonság alapján történő csoportosítására szolgál. Arra is használható, hogy egy tömbben duplikációkat keressen. Ha a Group-Object parancsmagot szeretné használni egy tömbben található ismétlődések kereséséhez, használja a következő parancsot:


$Array | Group-Object | Where-Object Count -gt 1 | Select-Object Name

Ez a parancs a tömb elemeit értékük szerint csoportosítja, és megszámolja, hogy az egyes értékek hányszor jelennek meg. Ezután kiválasztja a többször megjelenő értékeket.

Módszerek kombinálása összetettebb tömbökhöz

Bonyolultabb tömbök esetén szükség lehet a duplikátumok eltávolítására szolgáló módszerek kombinálására. Ha például objektumok tömbje van, és egy adott tulajdonság alapján szeretné eltávolítani az ismétlődéseket, akkor a következő parancsot használhatja:


$Array | Sort-Object -Property PropertyName -Unique | Select-Object PropertyName, Property1, Property2

Íme egy példa:


# Array with duplicate objects
$ObjectArray = @(
    [PSCustomObject]@{
        Name = "John"
        Age = 25
        Desgination = "IT Manager"
    },
    [PSCustomObject]@{
        Name = "Jane"
        Age = 30
        Desgination = "Analyst"
    },
    [PSCustomObject]@{
        Name = "John"
        Age = 25
        Desgination = "IT Manager"
    },
    [PSCustomObject]@{
        Name = "Alex"
        Age = 35
        Desgination = "Engineer"
    }
)

#Select unique objects from the array based on Name property
$objectArray | Sort-Object -Property Name -Unique | Select-Object Name, Age

Kimenetek:


Name Age
---- ---
Alex  35
Jane  30
John  25

Ez a parancs a PropertyName tulajdonság szerint rendezi a tömbben lévő objektumokat, csak az elem első előfordulását tartja meg, és eltávolítja a duplikációkat a tulajdonság alapján. Ezután kiválasztja az egyes objektumok PropertyName, Property1 és Property2 tulajdonságait.

Következtetés

A duplikátumok eltávolítása egy tömbből a PowerShellben gyakori feladat, amelyet rendszeresen el kell végeznie. Számos módszer létezik a másolatok eltávolítására egy tömbből, beleértve a Select-Object parancsmagot, a Sort-Object parancsmagot, a Get-Unique parancsmagot és a Group-Object parancsmagot. Ezeknek a technikáknak a megértése lehetővé teszi a jövőbeni kihívások kezelését, amelyek a tömbök ismétlődései miatt merülhetnek fel, valamint javítja a kódolási hatékonyságot és időt takarít meg.

Kapcsolódó cikkek