Nie ma sensu gromadzić danych, jeśli nie potrafisz ich posprzątać.

– Jeden z moich mentorów

cut – Precyzyjne cięcie!

cut to jak skalpel w rękach Linuksowego chirurga. Pozwala wyciągnąć konkretne fragmenty (kolumny lub znaki) z każdej linii pliku. Idealne, gdy masz plik CSV lub log, gdzie interesuje Cię tylko jedna, konkretna informacja.

Podstawowe użycie: Tniemy na kolumny!

# Wyciągnij pierwszą kolumnę (domyślny separator: tabulator)

cut -f1 plik.txt

# Wyciągnij konkretne kolumny (np. pierwszą, trzecią i piątą)

cut -f1,3,5 plik.txt

# Wyciągnij zakres kolumn (od pierwszej do trzeciej)

cut -f1-3 plik.txt

Separator: Nie tylko tabulatory!

Co, jeśli Twoje dane są oddzielone przecinkami, dwukropkami, czy czymkolwiek innym? cut to ogarnia.

# Użyj przecinka jako separatora (d dla delimiter) i wyciągnij pierwszą kolumnę

cut -d',' -f1 plik.csv

# Wyciągnij znaki zamiast kolumn (np. od 1 do 10 znaku)

cut -c1-10 plik.txt

# Wyciągnij znaki od 5 znaku do końca linii

cut -c5- plik.txt

sort – Ułóż to po ludzku!

sort to mistrz porządku. Bez problemu posortuje linie w Twoim pliku alfabetycznie, numerycznie, czy nawet według miesiąca. Dzięki niemu dane nabiorą sensu.

Podstawowe użycie: Od A do Z (lub odwrotnie)

# Posortuj plik alfabetycznie (domyślnie)

sort plik.txt

# Posortuj w odwrotnej kolejności (od Z do A)

sort -r plik.txt

# Posortuj i od razu usuń duplikaty (sort + uniq = sort -u)

sort -u plik.txt

# Posortuj numerycznie (np. liczby 10, 2, 1 posortuje jako 1, 2, 10, a nie 1, 10, 2)

sort -n plik.txt

Sortowanie zaawansowane: Gdy standard to za mało

# Posortuj według DRUGIEJ kolumny (k2 jak key 2)

sort -k2 plik.txt

# Posortuj numerycznie według TRZECIEJ kolumny

sort -k3 -n plik.txt

# Ignoruj wielkość liter podczas sortowania (A == a)

sort -f plik.txt

# Wymieszaj linie losowo (shuffle) – czasem przydatne do testów

shuf plik.txt

# Posortuj według nazw miesięcy (np. Jan, Feb, Mar)

sort -M plik.txt

uniq – Pozbądź się powtórzeń!

uniq to narzędzie dla minimalistów. Usuwa powtarzające się sąsiednie linie. Ważne: uniq działa tylko na sąsiednich liniach, więc często musisz najpierw użyć sort!

Podstawowe użycie: Raz, a dobrze!

# Usuń powtarzające się sąsiednie linie

uniq plik.txt

# Zlicz wystąpienia każdej unikalnej linii (wtedy widać, co jest najpopularniejsze!)

uniq -c plik.txt

# Pokaż TYLKO duplikaty (czyli linie, które powtórzyły się więcej niż raz)

uniq -d plik.txt

# Pokaż TYLKO unikalne linie (czyli te, które pojawiły się tylko raz)

uniq -u plik.txt

Praktyczne przykłady: Trójca w akcji!

Analiza logów: Kto tu najczęściej zaglądał?

# Wyciągnij adresy IP z logów, posortuj je, zlicz wystąpienia i posortuj od największej liczby

# Czyli: pokaż mi topowe adresy, które uderzały w moją stronę!

grep "GET" access.log | cut -d' ' -f1 | sort | uniq -c | sort -rn

# Top 10 adresów IP – czyli ci, co najwięcej hałasu robili

cut -d' ' -f1 access.log | sort | uniq -c | sort -rn | head -10

Przetwarzanie CSV: Porządki w arkuszu kalkulacyjnym

# Wyciągnij trzecią kolumnę z pliku CSV (oddzieloną przecinkami) i posortuj unikalnie

cut -d',' -f3 data.csv | sort -u

# Wyciągnij pierwszą kolumnę, posortuj, zlicz wystąpienia i posortuj od najczęstszych

cut -d',' -f1 data.csv | sort | uniq -c | sort -rn

Łączenie narzędzi: Potęga potoków!

Prawdziwa siła Linuksa to łączenie prostych narzędzi w potężne potoki.

# Standardowy workflow: cat → cut → sort → uniq → sort -rn (odczytaj, wytnij, posortuj, zlicz, posortuj ponownie)

cat plik.txt | cut -d' ' -f1 | sort | uniq -c | sort -rn

# Znajdź najczęściej występujące słowa w tekście (usuń znaki interpunkcyjne, zamień na małe litery, posortuj, zlicz)

cat plik.txt | tr -cs '[:alpha:]' '\n' | tr 'A-Z' 'a-z' | sort | uniq -c | sort -rn

Podsumowanie: Dane jak z żurnala!

cut, sort i uniq to Twoi sprzymierzeńcy w walce z nieuporządkowanym tekstem. Dzięki nim z surowych danych wyciągniesz wartościowe informacje.

Kluczowe punkty do zapamiętania:

  • cut – wycinaj kolumny lub znaki z precyzją chirurga.
  • sort – sortuj linie, jak tylko Ci się podoba.
  • uniq – pozbądź się duplikatów (ale pamiętaj o wcześniejszym sort!).
  • Potoki (|) to Twoja supermoc – łącz te komendy, by osiągnąć zdumiewające efekty.
# Twój nowy zestaw do ogarniania topowych IP w logach:

cut -d' ' -f1 access.log | sort | uniq -c | sort -rn | head -10

Kolejny odcinek: awk – nadchodzi król! Pokażemy, dlaczego to narzędzie to prawdziwy kombajn do przetwarzania tekstu. Zostań z nami!