Existe um equivalente do Windows para o Unix unix?

10

Eu preciso remover linhas duplicadas de um arquivo de texto, é simples no Linux usando

cat file.txt |sort | uniq

quando o arquivo.txt contém

aaa
bbb
aaa
ccc

Ele produzirá

aaa
bbb
ccc

Existe um equivalente no Windows? ou como isso funciona do Windows?

    
por Yu Jiaao 23.04.2018 / 02:35

2 respostas

18

O cmdlet Sort-Object no PowerShell suporta uma opção -Unique que faz a mesma coisa que uniq :

Get-Content file.txt | Sort-Object -unique

Claro, devido à presença de aliases no PowerShell, você também pode escrever:

type file.txt | sort -unique

Além disso, há uma opção /unique não documentada em sort.exe do Windows 10, portanto, isso deve funcionar no Prompt de Comando:

type file.txt | sort /unique
    
por 23.04.2018 / 03:21
5

Existem ports do uniq que funcionam de forma idêntica às versões do gnu / coreutils. Eu pessoalmente uso a variação do GOW , mas o git for windows tem um versão mais recente . Nenhum cygwin é necessário para o último, você precisa procurar em / usr / bin

Como esses pacotes também contêm cat, sort e uniq - seu fluxo de trabalho deve ser praticamente idêntico e cat file.txt |sort | uniq deve funcionar basicamente da mesma forma

    
por 23.04.2018 / 10:20