Saya yakin seseorang dapat melakukan ini dengan lebih baik, tetapi di sini ada satu cara yang sepenuhnya kompatibel dengan lynix. Ini memiliki keuntungan meninggalkan Anda dengan rev
fungsi string yang dapat digunakan kembali untuk kotak peralatan Anda, yaitu mengurutkan seluruh string dan bukan hanya karakter terakhir:
function rev ($s) {return -join ($s[$s.Length..0])}
dir | foreach{rev($_.name)} | sort | foreach{rev($_)}
Saya pikir pendahuluan di sini dengan baik menunjukkan bagaimana pipa PowerShell adalah array dan bukan hanya string seperti di * nix.
Butuh beberapa saat untuk menyadari bahwa saya harus menggunakan saja $_
dan tidak $_.name
di dalam ke-2 foreach
. Jadi saya telah belajar sesuatu tentang variasi konten array dari satu pipa ke yang berikutnya.
* Kredit untuk nyali fungsi rev saya masuk ke http://rosettacode.org/wiki/Reverse_a_string#PowerShell
Bekerja seperti lynix:
- dir | sort -Property @ {Expression = {$ n = $ _. Name.ToCharArray (); [Array] :: Balikkan ($ n); [String] :: Gabung ("", $ n)}}
Semacam karya seperti lynix, tetapi sangat, sangat lambat:
- ls -n | sort {$ _ [3e3..0]}
Jangan bekerja seperti lynix, yaitu gagal mengurutkan semua karakter dari nama file; (hanya mengurutkan karakter terakhir dari string):
- dir | sortir {$ .name.Substring ($ .name.length-1)}
- dir | sortir {$ _. name [-1]}
- ls | sort {$ _. Name [-1]}
- ls | sort {"$ _" [- 1]}
- ls -n | sort {$ _ [- 1]}