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.txtSeparator: 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.txtsort – 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.txtSortowanie 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.txtuniq – 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.txtPraktyczne 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 -10Przetwarzanie 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 -rnPodsumowanie: 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 -10Kolejny odcinek: awk – nadchodzi król! Pokażemy, dlaczego to narzędzie to prawdziwy kombajn do przetwarzania tekstu. Zostań z nami!