Ketika saya menjalankan Unix biasa sortpada File1 Anda, tanpa opsi, saya mendapatkan File2 Anda. Apa yang kamu lakukan secara berbeda? Apa yang Anda tinggalkan dari pertanyaan ini?
Scott
Jawaban:
17
Saya suka -V --version-sort: ini berperilaku sangat baik untuk banyak situasi yang menggabungkan string dan angka
Saya baru-baru ini mencari ini ^^. Tapi satu lagi Q. Apa yang harus dilakukan -k2n? Apakah itu terkait dengan pengurutan angka? Terima kasih.
αғsнιη
2
@KasiyA -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.
Stéphane Chazelas
0
gunakan sortir:
sort -n file1 > file2
-n, --numeric-sort
membandingkan menurut nilai numerik string
Tidak, semua baris tersebut memiliki peringkat yang sama 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".
Stéphane Chazelas
@ StéphaneChazelas terima kasih telah menunjukkan.
Hackaholic
Mengutip, -ndan -gberlebihan di sini karena input tidak numerik. Jadi jawaban ini menyesatkan, maka downvote (perhatikan juga -gdan opsi panjangnya khusus untuk GNU).
Stéphane Chazelas
tapi -g adalah jenis umum-numerik yang bagus
Hackaholic
Itu masih untuk mengurutkan nilai numerik, bedanya -nadalah bahwa itu tidak terbatas pada bilangan bulat desimal. Itu masih akan disortir "$lvl=17"sebelumnya "$lvl=2"sebagai bagian dari penyortiran resor terakhir.
Stéphane Chazelas
0
Saya menemukan bahwa, Anda jalankan saja sort -h, itu akan berhasil. Mereka menyebutnya --human-numberic-sort.
sort
pada File1 Anda, tanpa opsi, saya mendapatkan File2 Anda. Apa yang kamu lakukan secara berbeda? Apa yang Anda tinggalkan dari pertanyaan ini?Jawaban:
Saya suka -V --version-sort: ini berperilaku sangat baik untuk banyak situasi yang menggabungkan string dan angka
Saya menggunakan opsi ini sangat sering ...
Di beberapa arah,
ls -v
untuk versi-sortirls
.sumber
Anda perlu memberi tahu
sort -n
untuk menyortir bagian setelah=
:sumber
-k2n
? Apakah itu terkait dengan pengurutan angka? Terima kasih.-k
mendefinisikan kunci pengurutan. Lihat halaman manual untuk detailnya.-k2n
mendefinisikan kunci pengurutan mulai dari bidang kedua dan berakhir di akhir baris dan menjadikannya kunci pengurutan angka.gunakan sortir:
-n, --numeric-sort
membandingkan menurut nilai numerik string
-g, --general-numeric-sort
sumber
sort -n
karena 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"
.-n
dan-g
berlebihan di sini karena input tidak numerik. Jadi jawaban ini menyesatkan, maka downvote (perhatikan juga-g
dan opsi panjangnya khusus untuk GNU).-n
adalah 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
.sumber
sort -n
adalah apa yang ingin Anda gunakan. Ini semacam kita mengurutkan angka.sort -k 2 -n file1
sumber