Izinkan saya mengklarifikasi:
Asumsikan saya memiliki beberapa kata kunci dengan frekuensi penggunaannya:
12 Hi
7 Hash
7 C++
9 Superuser
17 Stackoverflow
9 LaTeX
42 Life
9 Ubuntu
Yang saya inginkan, adalah menyortir data ini berdasarkan frekuensi dalam urutan menurun dan jika ada beberapa nilai yang sama, itu harus menggunakan kolom kedua dalam urutan naik.
sort -n -r foo.txt
Apakah bagian pertama tetapi kemudian kolom kedua juga reversed
:
42 Life
17 Stackoverflow
12 Hi
9 Ubuntu
9 Superuser
9 LaTeX
7 Hash
7 C++
Bagaimana saya bisa mencapai hasil berikut?
42 Life
17 Stackoverflow
12 Hi
9 LaTeX
9 Superuser
9 Ubuntu
7 C++
7 Hash
Saya pikir saya harus menggunakan -k
argumen tetapi saya tidak tahu caranya!
Saya ingin tahu bagaimana ini bisa dilakukan hanya dengan menggunakan sort
perintah bash
. Namun jika tidak mungkin untuk mencapai ini hanya dengan sort
, perintah lain harus kompatibel dengan Bourne shell.
text-processing
sort
Pouya
sumber
sumber
-g
opsi sortir-GNU (angka umum) alih-alih-n
untuk perbandingan numerik lebih aman: ia bekerja dengan benar untuk floating point dan integer.Jawaban:
Tentukan kunci pengurutan secara terpisah dengan kriteria:
Ini menentukan bahwa kunci pertama diurutkan secara numerik dalam urutan terbalik sedangkan yang kedua diurutkan sesuai urutan urutan default .
Mengutip dari POSIX sort :
Ini akan menghasilkan:
sumber