PowerShell: eliminar elementos de una matriz que existen en otra matriz
Puede usar la siguiente sintaxis en PowerShell para eliminar todos los elementos de una matriz que existen en otra matriz:
$array1 = $array1 | Where-Object { $array2 -notcontains $_ }
Este ejemplo en particular eliminará todos los elementos de la matriz denominada $array1 que existen en la matriz denominada $array2.
Tenga en cuenta que utilizamos el cmdlet Where-Object para filtrar los valores de la primera matriz donde la segunda matriz no contiene cada valor en particular.
El siguiente ejemplo muestra cómo utilizar esta sintaxis en la práctica.
Ejemplo: eliminar elementos de una matriz que existen en otra matriz en PowerShell
Supongamos que creamos dos matrices en PowerShell denominadas $array1 y $array2 que contienen los nombres de varios equipos de baloncesto:
$array1 = @('Mavs', 'Kings', 'Hawks', 'Nets', 'Jazz')
$array2 = @('Jazz', 'Kings', 'Lakers', 'Celtics', 'Spurs')
Supongamos que nos gustaría eliminar cada elemento de $array1 que también existe en $array2.
Podemos utilizar la siguiente sintaxis para hacerlo:
$array1 = $array1 | Where-Object { $array2 -notcontains $_ }La siguiente captura de pantalla muestra cómo utilizar esta sintaxis en la práctica:
Observe que cuando volvemos a ver $array1 podemos ver que cada nombre de equipo que también existía en $array2 se ha eliminado de la matriz.
En particular, podemos ver que los nombres de los equipos Jazz y Kings se han eliminado de $array1.
Siéntase libre de utilizar una sintaxis similar para eliminar elementos de su propia matriz que existen en otra matriz.
Nota: Puede encontrar la documentación completa para el cmdlet Where-Object en PowerShell aquí.
