Jak odstraním duplicitní řádky?
Příkaz, který se často používá spolu s sort, je uniq.
Jeho úkolem je odstranit duplicitní řádky –
přesněji řečeno odstraní sousední duplicitní řádky.
Pokud soubor obsahuje:
2017-07-03
2017-07-03
2017-08-03
2017-08-03
uniq vrátí:
2017-07-03
2017-08-03
Ale pokud soubor obsahuje:
2017-07-03
2017-08-03
2017-07-03
2017-08-03
uniq vypíše všechny čtyři řádky.
Důvod je ten, že uniq je navržen pro práci s velmi velkými soubory.
Aby mohl odstranit nesousední duplicity,
musel by mít celý soubor v paměti
(nebo alespoň všechny dosud zaznamenané jedinečné řádky).
Odstraněním pouze sousedních duplicit si v paměti stačí uchovat jen poslední jedinečný řádek.
Toto cvičení je součástí kurzu
Introduction to Shell
Pokyny k cvičení
Sestav pipeline, která:
- získá druhý sloupec ze souboru
seasonal/winter.csv, - odstraní z výstupu slovo "Tooth", aby se zobrazovaly pouze názvy zubů,
- seřadí výstup tak, aby byly všechny výskyty daného názvu zubu sousední, a
- zobrazí každý název zubu jednou spolu s počtem, kolikrát se vyskytuje.
Začátek pipeline je stejný jako v předchozím cvičení:
cut -d , -f 2 seasonal/winter.csv | grep -v Tooth
Rozšiř ho o příkaz sort a použij uniq -c k zobrazení jedinečných řádků s počtem výskytů – místo kombinace uniq a wc.
Interaktivní praktické cvičení
Proměňte teorii v praxi s jedním z našich interaktivních cvičení
Začít cvičení