Wprowadzenie
W tym przewodniku pokażę, jak sortować dane w plikach rozdzielanych i na podstawie wyników innych poleceń.
Nie zdziwisz się, gdy dowiesz się, że polecenie, którego używasz do wykonania tego zadania, nazywa się "sort". Wszystkie główne przełączniki polecenia sort zostaną dostarczone w tym artykule.
Przykładowe dane
Dane w pliku mogą być sortowane tak długo, jak są w pewien sposób rozdzielane.
Na przykład, weźmy ostatni stół ligowy ze szkockiej Premier League w zeszłym roku i przechowujmy dane w pliku o nazwie "spl".
Możesz utworzyć plik danych w następujący sposób z jednym klubem i danymi dla tego klubu oddzielonymi przecinkami w każdym rzędzie.
Zespół | Zdobyte bramki | Gole przeciw | Zwrotnica |
---|---|---|---|
celtycki | 93 | 31 | 86 |
Aberdeen | 62 | 48 | 71 |
Kiery | 59 | 40 | 65 |
St Johnstone | 58 | 55 | 56 |
Motherwell | 47 | 63 | 50 |
Ross County | 55 | 61 | 48 |
Inverness | 54 | 48 | 52 |
Dundee | 53 | 57 | 48 |
Partick | 41 | 50 | 46 |
Hamilton | 42 | 63 | 43 |
Kilmarnock | 41 | 64 | 36 |
Dundee United | 45 | 70 | 28 |
Jak sortować dane w plikach
Z tego stołu widać, że Celtic wygrał ligę, a Dundee United jako ostatni. Jeśli jesteś fanem Dundee United, możesz poczuć się lepiej i możesz to zrobić, sortując strzelone gole.
Aby to zrobić, uruchom następujące polecenie:
sort -k2 -t, spl
Tym razem kolejność będzie następująca:
- Partick
- Kilmarnock
- Hamilton
- Dundee United
- Motherwell
- Dundee
- Inverness
- Ross County
- St Johnstone
- Kiery
- Aberdeen
- celtycki
Powodem, dla którego wyniki są w tej kolejności, jest to, że kolumna 2 to kolumna z oceną bramek, a sortowanie przechodzi od najniższego do najwyższego.
Przełącznik -k pozwala wybrać kolumnę do sortowania, a przełącznik -t pozwala wybrać separator.
Aby być naprawdę szczęśliwym, fani Dundee United mogą sortować według kolumny 4 za pomocą następującego polecenia:
sort -k4 -t, spl
Teraz Dundee United są na szczycie, a Celtic na dole.
Oczywiście sprawiłoby to, że fani Celticu i Dundee byli bardzo nieszczęśliwi. Aby uporządkować sprawy, możesz sortować w odwrotnej kolejności, używając następującego przełącznika:
sort -k4 -t, -r spl
Dość dziwaczny przełącznik pozwala sortować losowo, co naprawdę marnuje wiersze danych.
Możesz to zrobić za pomocą następującego polecenia:
sort -k4 -t, -R spl
Może to spowodować prawdziwe problemy, jeśli pomieszałeś -r i twój przełącznik -R.
Polecenie sort może również sortować daty w kolejności miesięcznej. Aby zademonstrować spojrzenie na poniższą tabelę:
Miesiąc | Wykorzystane dane |
---|---|
styczeń | 4G |
luty | 3000K |
Marsz | 6000K |
kwiecień | 100 mln |
Może | 5000M |
czerwiec | 200K |
lipiec | 4000K |
sierpień | 2500 KB |
wrzesień | 3000K |
październik | 1000K |
listopad | 3G |
grudzień | 2G |
Powyższa tabela przedstawia miesiąc w roku i ilość danych użytych na urządzeniu mobilnym.
Możesz sortować daty alfabetycznie za pomocą następującego polecenia:
sort -k1 -t, datausedlist
Możesz także sortować według miesiąca, używając następującego polecenia:
sort -k1 -t, -M data listy
Teraz oczywiście powyższa tabela pokazuje je już w porządku miesięcznym, ale jeśli lista była losowo wypełniana, byłaby to prosta metoda sortowania.
Patrząc na drugą kolumnę, widać, że wszystkie wartości są w formacie czytelnym dla człowieka, który nie wygląda na łatwy do sortowania, ale polecenie sort może posortować kolumnę danych za pomocą następującego polecenia:
sort -k2 -t, -h datausedlist
Jak sortować dane przekazane od innych poleceń
Podczas sortowania danych w plikach jest użyteczne, polecenie sort może również służyć do sortowania danych wyjściowych z innych poleceń:
Na przykład spójrz na polecenie ls:
ls-lt
Powyższe polecenie zwraca każdy plik jako wiersz danych z następującymi polami wyświetlanymi w kolumnach:
- uprawnienia
- liczba węzłów
- Nazwa Użytkownika
- Nazwa grupy
- rozmiar
- ostatnia data dostępu
- Nazwa pliku
Możesz posortować listę według rozmiaru pliku, uruchamiając następujące polecenie:
ls -lt | sortuj -k5
Aby uzyskać wyniki w odwrotnej kolejności, należy użyć następującego polecenia:
ls -lt | sort -k5 -r
Polecenie sort może być również użyte w połączeniu z poleceniem ps, które wymienia procesy uruchomione w twoim systemie.
Na przykład uruchom następujące polecenie ps w systemie:
ps -eF
Powyższe polecenie zwraca wiele informacji o procesach aktualnie uruchomionych w systemie.
Jedna z tych kolumn ma rozmiar i możesz chcieć zobaczyć, które procesy są największe.
Aby sortować te dane według rozmiaru, można użyć następującego polecenia:
ps -eF | sortuj -k5
streszczenie
Nie ma zbyt wiele dla polecenia sortowania, ale może się bardzo szybko przydać przy sortowaniu danych wyjściowych z innych poleceń do znaczącej kolejności, szczególnie gdy polecenie nie ma dostępnych własnych przełączników sortowania.
Aby uzyskać więcej informacji, przeczytaj strony podręcznika dla polecenia sortowania.