web hit counter
20 December 2006

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

Comments

# Roberto said:

ciao piergiorgio,

inanzitutto complimenti per le tue ottime presentazioni!

oggi (21/12/2006) non sono riuscito a vedere il tuo webcast delle 14.00. (errori non specificati ... mi gira alla pagina di supporto).

è possibile prelevare i webcast già eseguiti?

sono interessato a questo e ai seguenti:

- Le novità di Windows Firewall e di Windows Defender in Windows Vista (Livello 200)

- Windows Server 2003 R2: Gestione delle stampanti (Livello 300).

grazie e auguri !

ciao roberto

21 December 06 at 8:55 AM
# pimalusa said:

Ciao Roberto.

Il webcast che cercavi era stato annullato ed è stato esposta un'errata pagina di errore.

I webcast passati sono ora scaricabili a partire dalla pagina di technet italia (http://www.microsoft.com/italy/technet) menù Eventi e webcast > Webcast > Webcast passati.

Ciao e Buon Anno.

PierGiorgio Malusardi

28 December 06 at 5:34 PM
New Comments to this post are disabled
Page view tracker