Estoy seguro de que alguien puede hacerlo mejor, pero aquí hay una forma que es totalmente compatible con Lynx. Tiene la ventaja de dejarle una rev
función de cadena reutilizable para su caja de herramientas, es decir, clasifica toda la cadena y no solo el último carácter:
function rev ($s) {return -join ($s[$s.Length..0])}
dir | foreach{rev($_.name)} | sort | foreach{rev($_)}
Creo que el foreach aquí demuestra muy bien cómo las tuberías de PowerShell son matrices y no simplemente cadenas como en * nix.
Me tomó un tiempo darme cuenta de que tenía que usar solo $_
y no $_.name
dentro del segundo foreach
. Así que aprendí algo sobre las variaciones en el contenido de la matriz de una tubería a la siguiente.
* El crédito por las agallas de mi función rev va a http://rosettacode.org/wiki/Reverse_a_string#PowerShell
Funciona como lynix:
- dir | sort -Property @ {Expression = {$ n = $ _. Name.ToCharArray (); [Matriz] :: Reverso ($ n); [Cadena] :: Unir ("", $ n)}}
Algo así como trabajos como lynix, pero muy, muy lento:
- ls -n | sort {$ _ [3e3..0]}
No funciona como lynix, es decir , no puede ordenar todos los caracteres de los nombres de archivo; (solo ordena el último carácter de la cadena):
- dir | sort {$ .name.Substring ($ .name.length-1)}
- dir | ordenar {$ _. nombre [-1]}
- ls | sort {$ _. Nombre [-1]}
- ls | sort {"$ _" [- 1]}
- ls -n | sort {$ _ [- 1]}