Supprimer les doublons dans un fichier texte puis le trier en Powershell

Nous allons voir comment trier puis supprimer les doublons dans un fichier texte avec un script Powershell.

Avant de commencer et si vous n’êtes pas encore à l’aise en Powershell je vous invite à consulter les articles suivants:

Installer PowerShell 1.0

Exécuter un script en PowerShell

Considérons un fichier texte nommé AllDomainComputers.txt contenant la liste de machines suivantes:

Station14
Station04
Station01
Station24
Station01

Nous souhaitons supprimer les doublons puis trier la liste par ordre alphabétique tout en conservant la liste original.

Pour cela nous créons un fichier de script Powershell MonScript.PS1contenant le script suivant:

Le meilleur VPN au monde
$OriginalFile = "C:\AllDomainComputers.txt"
$DestinationFile = "C:\AllDomainComputers_NEW.txt"
Get-Content $OriginalFile | Sort-Object | Get-Unique > $DestinationFile

Puis nous l’exécutons depuis une ligne de commande:

PowerShell c:\Monscript.PS1

On peut constater que le nouveau fichier AllDomainComputers_NEW.txt contient bien un liste triée et sans aucun doublons:

Station01
Station04
Station14
Station24

Nous aurions pu utiliser les Alias afin de simplifier le code, ce qui aurait donné :

$OriginalFile = "C:\AllDomainComputers.txt"
$DestinationFile = "C:\AllDomainComputers_NEW.txt"
GC $OriginalFile | Sort | GU > $DestinationFile

Pour trier la liste dans l’ordre inverse il suffit d’utiliser la propriété descending :

$OriginalFile = "C:\AllDomainComputers.txt"
$DestinationFile = "C:\AllDomainComputers_NEW.txt"
GC $OriginalFile | Sort -descending | GU > $DestinationFile

On obtient ainsi la liste suivante :

Station24
Station14
Station04
Station01

Laisser un commentaire