2009-09-08 62 views

Respuesta

138

Uso Select -uniq ej .:

$a = @(1,2,3,4,5,5,6,7,8,9,0,0) 
$a = $a | select -uniq 
+4

Eso fue demasiado fácil :-(. En PowerShell 2 también puede usar 'Get-Unique' (o' gu') si su matriz ya está ordenada. – Joey

+2

Johannes, Get-Unique está disponible en v1 :) –

62

Otra opción:

$a | sort -unique 
+1

This también resuelve mi próximo problema, que es cómo lo clasifico. ¡Gracias! –

+1

Este también parece un poco más rápido. –

2

Si la lista está ordenada, se puede usar el cmdlet Get-Unique:

$a | Get-Unique 
+2

Requiere que la lista se ordene de antemano –

3
$a | sort -unique 

Esto funciona sin distinguir entre mayúsculas y minúsculas, por lo tanto, elimina cadenas duplicadas con diferentes casos. Resolvió mi problema

$ServerList = @(
    "FS3", 
    "HQ2", 
    "hq2" 
) | sort -Unique 

$ServerList 

FS3 

HQ2 
1

En caso de que quiera ser bombardear totalmente demostrar, esto es lo que aconsejaría:

@('Apples', 'Apples ', 'APPLES', 'Banana') | 
    Sort-Object -Property @{Expression={$_.Trim()}} -Unique 

Salida:

Apples 
Banana 

Este utiliza el parámetro Property a primera Trim() las cadenas, por lo que se eliminan los espacios extra y luego selecciona solo los valores -Unique.

Más información sobre Sort-Object:

Get-Help Sort-Object -ShowWindow 
+0

Awesome answer. Resuelto mi problema, 'Get-Unique' no funcionó porque espacios –

+0

De nada, me alegro de que haya ayudado :) – DarkLite1

0

Ya sea que esté usando "CLASIFICAR ÚNICO de", "SELECT ÚNICO de" o "GET-UNIQUE" de PowerShell 2.0 en 5.1, se todos los ejemplos dados están en Arrays de una sola columna. Todavía tengo que hacer que esto funcione en todas las matrices con varias columnas para eliminar filas duplicadas para dejar instancias individuales de una fila en dichas columnas, o desarrollar una solución de script alternativa. En cambio, estos cmdlets solo han devuelto Filas en una Matriz que se produjo UNA VEZ con ocurrencia singular y volcaron todo lo que tenía un duplicado. Normalmente, tengo que eliminar duplicados manualmente de la salida final de CSV en Excel para finalizar el informe, pero a veces me gustaría seguir trabajando con dichos datos en Powershell después de eliminar los duplicados.

Cuestiones relacionadas