Skip to main content

Jak sortować dane w pliku za pomocą systemu Linux

Kurs Linux Polecenia - lekcja 6 - Tworzenie i usuwanie plików oraz katalogów (Kwiecień 2025)

Kurs Linux Polecenia - lekcja 6 - Tworzenie i usuwanie plików oraz katalogów (Kwiecień 2025)
Anonim

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 bramkiGole przeciwZwrotnica
celtycki933186
Aberdeen624871
Kiery594065
St Johnstone585556
Motherwell476350
Ross County556148
Inverness544852
Dundee535748
Partick415046
Hamilton426343
Kilmarnock416436
Dundee United457028

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ącWykorzystane dane
styczeń4G
luty3000K
Marsz6000K
kwiecień100 mln
Może5000M
czerwiec200K
lipiec4000K
sierpień2500 KB
wrzesień3000K
październik1000K
listopad3G
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.