Necesito eliminar líneas duplicadas de un archivo de texto, es simple en Linux usando
cat file.txt |sort | uniq
cuando file.txt contiene
aaa
bbb
aaa
ccc
Saldrá
aaa
bbb
ccc
¿Hay un equivalente de Windows? o cómo hacer esto de una manera Windows?

sort -u file.txtRespuestas:
El
Sort-Objectcmdlet en PowerShell admite un-Uniqueconmutador que hace lo mismo queuniq:Por supuesto, debido a la presencia de alias en PowerShell, también puede escribir:
Además, hay un
/uniqueinterruptor no documentado ensort.exeWindows 10, por lo que esto debería funcionar en el símbolo del sistema:fuente
sort.exe) sea compatible con esto; parece una característica de la construcción incorporada de PowerShell.type file.txt | sort /uniquefunciona con indocumentado interruptor/uniquedesort.exeutilidad (por lo menos en Windows 10). Por otro lado, tiene razón en que el ejemplo proporcionado es PowerShellGet-Content file.txt | Sort-Object -unique, de hecho.sort /uniqueerrores conInvalid switch.en Windows 7 Enterprise.Hay puertos de uniq que funcionan de manera idéntica a las versiones gnu / coreutils. Personalmente uso la variación de GOW, pero git para Windows tiene una versión significativamente más nueva . No se requiere cygwin, pero para esto último debe buscar en / usr / bin
Dado que estos paquetes también contienen cat, sort y uniq, su flujo de trabajo debería ser en su mayoría idéntico, y
cat file.txt |sort | uniqdebería funcionar de manera idénticafuente
Puede escribir fácilmente el comando "uniq" usted mismo. Guarde esto en un archivo por lotes "uniq.cmd" en algún lugar de su% path% puede encontrarlo (por ejemplo, en% windir% \ system32). Esta versión NO distingue entre mayúsculas y minúsculas:
Esto funciona con "uniq mytextfile" y "cat mytextfile | uniq"; ya que todas las entradas y argumentos simplemente se pasan al comando de clasificación.
A partir de Windows 7, es posible que desee una versión realmente sensible a mayúsculas y minúsculas (la diferencia es que el interruptor no documentado "sort / C" y no "if / i"):
fuente
/?,ON,one ^ caretobang!. Pero eso se puede resolver mediante el uso de la técnica de alternancia de expansión retardada yecho(ver: Dostips: ECHO. FALLA en dar texto o línea en blancoAdemás de la respuesta de Yu Jiaao. Puede invocar el
sort-objectcmdlet powershell en un símbolo del sistema como:fuente