Lote para classificar um arquivo com a remoção da linha de duplicatas?

1

Se eu tiver um arquivo de texto, posso classificá-lo pelo comando sort input.txt output.txt . Posso de alguma forma também remover linhas duplicadas do arquivo de texto também. (Idealmente, gostaria de uma solução que pode ser feita em um arquivo em lotes no Windows.)

Isso é basicamente o mesmo que perguntar como remover duplicatas do arquivo de texto. (Desde que, obviamente, eu posso classificar primeiro e depois usar um lote para remover duplicatas.) A razão pela qual eu também mencionei a classificação é que eu suponho que é mais fácil remover duplicatas se soubermos que o arquivo está classificado e eles só podem aparecer em linhas consecutivas. . Então, eu acho que é mais provável que haja alguma maneira de remover duplicatas junto com a classificação. (E para os propósitos onde eu quero usar este id não importa se a ordem das linhas no arquivo é alterada, contanto que as linhas repetidas sejam removidas.)

Por exemplo, do arquivo com esta aparência:

100
100
100
100
101
101
102

Eu gostaria de receber

100
101
102
    
por Martin 24.02.2017 / 06:43

1 resposta

3

Batch to sort a file with removing duplicates line?

Abaixo, há uma solução nativa do Windows para script em lote, assim como você solicitou que concluirá essa tarefa; basta definir suas variáveis de arquivo de entrada e saída de acordo.

Nota de bônus: Se você alterar o SET InputFile=%~1 dessa forma, poderá arrastar o arquivo para o script em lote salvo e ele concluirá a tarefa usando o simples arrastar e soltar método de queda.

Script em lote

@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

Mais recursos

por 24.02.2017 / 07:08