Tenho certeza de que alguém pode fazer isso melhor, mas aqui está uma maneira totalmente compatível com o lynix. Ele tem a vantagem de deixar você com uma função de string rev
reutilizável para sua caixa de ferramentas, ou seja, ela classifica toda a sequência e não apenas o último caractere:
function rev ($s) {return -join ($s[$s.Length..0])}
dir | foreach{rev($_.name)} | sort | foreach{rev($_)}
Acho que o foreach está aqui para demonstrar como os pipes do PowerShell são matrizes e não simplesmente strings como no * nix.
Demorei um pouco para perceber que eu tinha que usar apenas $_
e não $_.name
dentro do segundo foreach
. Então aprendi algo sobre variações no conteúdo da matriz de um pipe para o próximo.
* O crédito para a coragem da minha função rev vai para o link
Funciona como o lynix:
- dir | sort -Property @ {Expression = {$ n = $ _. Name.ToCharArray (); [Array] :: Reverse ($ n); [String] :: Join ("", $ n)}}
Organiza trabalhos como o lynix, mas muito, muito lento:
- ls -n | sort {$ _ [3e3..0]}
Não funciona como lynix, , ou seja, falha ao classificar todos os caracteres dos nomes dos arquivos; (apenas ordena o último caractere da string):
- dir | sort {$ .name.Substring ($ .name.length-1)}
- dir | classificar {$ _. name [-1]}
- ls | sort {$ _. Name [-1]}
- ls | sort {"$ _" [- 1]}
- ls -n | sort {$ _ [- 1]}