Pozwól mi wyjaśnić:
Załóżmy, że mam kilka słów kluczowych z częstotliwością ich użycia:
12 Hi
7 Hash
7 C++
9 Superuser
17 Stackoverflow
9 LaTeX
42 Life
9 Ubuntu
Chcę posortować te dane według częstotliwości w porządku malejącym, a jeśli istnieją jakieś równe wartości, powinna użyć drugiej kolumny w porządku rosnącym.
sort -n -r foo.txt
Czy pierwsza część, ale potem druga kolumna to również reversed
:
42 Life
17 Stackoverflow
12 Hi
9 Ubuntu
9 Superuser
9 LaTeX
7 Hash
7 C++
Jak mogę uzyskać następujące wyniki?
42 Life
17 Stackoverflow
12 Hi
9 LaTeX
9 Superuser
9 Ubuntu
7 C++
7 Hash
Myślę, że muszę użyć -k
argumentu, ale nie wiem, jak to zrobić!
Chcę wiedzieć, jak to zrobić, korzystając wyłącznie z sort
polecenia bash
. Jednak jeśli nie jest to możliwe tylko przez sort
, inne polecenia powinny być kompatybilne z powłoką Bourne'a.
text-processing
sort
Pouja
źródło
źródło
-g
(ogólna liczba) zamiast-n
porównań numerycznych jest bezpieczniejsze: działa poprawnie zarówno dla liczb zmiennoprzecinkowych, jak i liczb całkowitych.Odpowiedzi:
Podaj klucze sortowania osobno, stosując kryteria:
Oznacza to, że pierwszy klucz jest sortowany numerycznie w odwrotnej kolejności, podczas gdy drugi jest sortowany zgodnie z domyślną kolejnością sortowania.
Cytowanie z sortowania POSIX :
Spowodowałoby to:
źródło