Powershell: eliminare linee duplicate da un file

Ciao a tutti.

Continuano i miei esperimenti con Powershell.

Oggi avevo bisogno di estrarre delle informazioni da un file di log . Il file conteneva una grande quantità di linee duplicate. Mi sono chiesto se e come Powershell potesse aiutarmi nel produrre un file contenente solo una copia di ogni linea. Poweshell si è dimostrato molto flessibile e ho trovato tre possibili soluzioni (anche se immagino ce ne siano altre possibili):

1) Get-Content log.txt | Select-object -Unique | Out-File unique-log.txt
2) Get-Content log.txt | Sort-object | Get-Unique | Out-File unique-log.txt
3) Get-Content log.txt | Sort-object -unique | Out-File unique-log.txt

Le soluzioni 2 e 3 sono sostanzialmente equivalenti. 

La differenza tra la soluzione 1 e le soluzioni 2 e 3 e che queste ultime ritornano le linee ordinate e questo è perché Get-Unique restituisce gli item univoci di una lista ordinata. In alcune situazioni questo potrebbe non essere gradito, in altre situazioni essere utile (per esempio nel caso la lista sia costituita da righe suddivisibili in diversi campi come in un file .csv).

La soluzione che risponde meglio alle mie necessità è la 1 perché mantiene l'ordine delle stringhe.

Ciao a tutti e a presto

PierGiorgio Malusardi