Opsi -k adalah yang Anda inginkan.
-k 1.4,1.5n -k 1.14,1.15n
Akan menggunakan posisi karakter 4-5 di kolom pertama (semuanya satu kolom untuk lebar tetap) dan urutkan secara numerik sebagai kunci pertama.
Kunci kedua juga akan menjadi karakter 14-15 di kolom pertama.
(sunting)
Contoh (semua yang saya miliki adalah DOS/cygwin berguna):
dir | \cygwin\bin\sort.exe -k 1.4,1.5n -k 1.40,1.60r
untuk datanya:
12/10/2008 01:10 PM 1,564,990 outfile.txt
Mengurutkan daftar direktori berdasarkan nomor bulan (pos 4-5) secara numerik, lalu berdasarkan nama file (pos 40-60) secara terbalik. Karena tidak ada tab, semuanya adalah kolom 1 untuk diurutkan.
Berhati-hatilah:
Jika Anda ingin mengurutkan file terutama berdasarkan bidang 3, dan kedua berdasarkan bidang 2, Anda menginginkan ini:
sort -k 3,3 -k 2,2 < inputfile
Bukan ini: sort -k 3 -k 2 < inputfile
yang mengurutkan file berdasarkan string dari awal bidang 3 hingga akhir baris (yang berpotensi unik).
-k, --key=POS1[,POS2] start a key at POS1 (origin 1), end it at POS2
(default end of line)