En aquest tema, aprendrem com ordenar i agrupar objectes en PowerShell. Aquestes tècniques són essencials per gestionar i analitzar dades de manera eficient.

Objectius del Tema

  • Comprendre com utilitzar Sort-Object per ordenar objectes.
  • Aprendre a agrupar objectes amb Group-Object.
  • Aplicar aquests conceptes en exemples pràctics.

Ordenació d'Objectes amb Sort-Object

Conceptes Clau

  • Sort-Object: Cmdlet utilitzat per ordenar objectes en funció d'una o més propietats.
  • Propietats: Les característiques dels objectes que es poden utilitzar per ordenar-los.

Sintaxi Bàsica

Sort-Object [-Property] <string[]> [-Descending] [-Unique]

Exemples Pràctics

Exemple 1: Ordenar una llista de números

# Llista de números desordenats
$numbers = 5, 3, 8, 1, 2

# Ordenar els números
$sortedNumbers = $numbers | Sort-Object
Write-Output $sortedNumbers

Explicació: Aquest exemple ordena una llista de números de menor a major.

Exemple 2: Ordenar objectes per una propietat

# Crear una llista d'objectes
$people = @(
    @{Name="Anna"; Age=28},
    @{Name="John"; Age=35},
    @{Name="Maria"; Age=22}
)

# Ordenar per edat
$sortedPeople = $people | Sort-Object -Property Age
$sortedPeople

Explicació: Aquest exemple ordena una llista de persones per la seva edat.

Exemple 3: Ordenar en ordre descendent

# Ordenar per edat en ordre descendent
$sortedPeopleDesc = $people | Sort-Object -Property Age -Descending
$sortedPeopleDesc

Explicació: Aquest exemple ordena la mateixa llista de persones per edat, però en ordre descendent.

Agrupació d'Objectes amb Group-Object

Conceptes Clau

  • Group-Object: Cmdlet utilitzat per agrupar objectes en funció d'una o més propietats.
  • Propietats: Les característiques dels objectes que es poden utilitzar per agrupar-los.

Sintaxi Bàsica

Group-Object [-Property] <string[]> [-AsHashTable] [-AsString]

Exemples Pràctics

Exemple 1: Agrupar objectes per una propietat

# Crear una llista d'objectes
$people = @(
    @{Name="Anna"; Age=28; City="Barcelona"},
    @{Name="John"; Age=35; City="Madrid"},
    @{Name="Maria"; Age=22; City="Barcelona"},
    @{Name="Luis"; Age=30; City="Madrid"}
)

# Agrupar per ciutat
$groupedByCity = $people | Group-Object -Property City
$groupedByCity

Explicació: Aquest exemple agrupa una llista de persones per la seva ciutat.

Exemple 2: Agrupar i comptar objectes

# Agrupar per ciutat i comptar
$groupedByCityCount = $people | Group-Object -Property City | Select-Object Name, Count
$groupedByCityCount

Explicació: Aquest exemple agrupa les persones per ciutat i compta quantes persones hi ha en cada grup.

Exercicis Pràctics

Exercici 1: Ordenar una llista de fitxers per mida

  1. Crea una llista de fitxers amb diferents mides.
  2. Ordena la llista de fitxers per mida en ordre ascendent.
# Solució
$files = Get-ChildItem -Path "C:\AlgunaCarpeta"
$sortedFiles = $files | Sort-Object -Property Length
$sortedFiles

Exercici 2: Agrupar processos per nom

  1. Obteniu una llista de processos en execució.
  2. Agrupeu els processos per nom i mostreu el nombre de processos per cada nom.
# Solució
$processes = Get-Process
$groupedProcesses = $processes | Group-Object -Property ProcessName | Select-Object Name, Count
$groupedProcesses

Resum

En aquest tema, hem après a ordenar i agrupar objectes en PowerShell utilitzant els cmdlets Sort-Object i Group-Object. Hem vist com aplicar aquests cmdlets en diversos exemples pràctics i hem practicat amb exercicis per reforçar els conceptes apresos. Aquestes habilitats són fonamentals per gestionar i analitzar dades de manera eficient en PowerShell.

Curs de PowerShell

Mòdul 1: Introducció a PowerShell

Mòdul 2: Scripting Bàsic

Mòdul 3: Treballant amb Objectes

Mòdul 4: Tècniques Avançades de Scripting

Mòdul 5: Automatització i Programació de Tasques

Mòdul 6: Remotització amb PowerShell

Mòdul 7: Funcions Avançades de PowerShell

Mòdul 8: PowerShell i DevOps

Mòdul 9: Millors Pràctiques i Consells Avançats

© Copyright 2024. Tots els drets reservats