2 votes

Trier un fichier par lots en supprimant les doublons ?

Si j'ai un fichier texte, je peux le trier par commande sort input.txt output.txt . Puis-je d'une manière ou d'une autre supprimer également les lignes dupliquées du fichier texte. (Idéalement, j'aimerais une solution qui puisse être réalisée dans un fichier batch sous Windows).

Cela revient à demander comment supprimer les doublons d'un fichier texte. (La raison pour laquelle j'ai également mentionné le tri est que je suppose qu'il est plus facile de supprimer les doublons si nous savons que le fichier est trié et qu'ils ne peuvent apparaître que sur des lignes consécutives. Je pense donc qu'il est plus probable qu'il existe un moyen de supprimer les doublons en même temps que le tri. (Et pour l'usage que je veux en faire, il importe peu que l'ordre des lignes dans le fichier soit modifié, tant que les lignes répétées sont supprimées).

Par exemple, à partir d'un fichier ressemblant à celui-ci :

100
100
100
100
101
101
102

Je souhaite obtenir

100
101
102

2voto

Trier un fichier par lots en supprimant les doublons ?

Vous trouverez ci-dessous un script script en mode batch pour Windows, comme vous l'avez demandé, qui vous permettra d'accomplir cette tâche ; il vous suffit de définir vos variables d'entrée et de sortie en conséquence.

Note bonus : Si vous modifiez le SET InputFile=%~1 comme cela, vous pouvez faire glisser le fichier vers le script sauvegardé et il effectuera la tâche en utilisant la méthode simple du glisser-déposer.

Batch script

@ECHO ON

SET InputFile=C:\folder\path\Input.txt
::SET InputFile=%~1
SET OutputFile=C:\folder\path\Output.txt

SET PSScript=%Temp%\~tmpRemoveDupe.ps1
IF EXIST "%PSScript%" DEL /Q /F "%PSScript%"
ECHO Get-Content "%InputFile%" ^| Sort-Object ^| Get-Unique ^> "%OutputFile%">>"%PSScript%"

SET PowerShellDir=C:\Windows\System32\WindowsPowerShell\v1.0
CD /D "%PowerShellDir%"
Powershell -ExecutionPolicy Bypass -Command "& '%PSScript%'"

GOTO EOF

Ressources complémentaires

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X