Jawaban:
Anda perlu memberi tahu sort -nuntuk menyortir bagian setelah =:
sort -t = -k 2n
-k2n? Apakah itu terkait dengan pengurutan angka? Terima kasih.
-kmendefinisikan kunci pengurutan. Lihat halaman manual untuk detailnya. -k2nmendefinisikan kunci pengurutan mulai dari bidang kedua dan berakhir di akhir baris dan menjadikannya kunci pengurutan angka.
gunakan sortir:
sort -n file1 > file2
-n, --numeric-sort
membandingkan menurut nilai numerik string
sort -g file1 > file 2
-g, --general-numeric-sort
sort -nkarena mereka tidak memulai dengan angka. Alasannya memilah mereka adalah jenis garis penuh resor-terakhir (leksikal, tidak numerik) dilakukan untuk baris dengan peringkat yang sama. Itu akan menyortir "$lvl=17"sebelumnya "$lvl=2".
-ndan -gberlebihan di sini karena input tidak numerik. Jadi jawaban ini menyesatkan, maka downvote (perhatikan juga -gdan opsi panjangnya khusus untuk GNU).
-nadalah bahwa itu tidak terbatas pada bilangan bulat desimal. Itu masih akan disortir "$lvl=17"sebelumnya "$lvl=2"sebagai bagian dari penyortiran resor terakhir.
Saya menemukan bahwa, Anda jalankan saja sort -h, itu akan berhasil. Mereka menyebutnya --human-numberic-sort.
sort -h file1 > file2
sort -nadalah apa yang ingin Anda gunakan. Ini semacam kita mengurutkan angka.sort -k 2 -n file1
sortpada File1 Anda, tanpa opsi, saya mendapatkan File2 Anda. Apa yang kamu lakukan secara berbeda? Apa yang Anda tinggalkan dari pertanyaan ini?