Příkazy pro Linux

Linux uniq příkaz

Linux uniq příkaz
Co je „uniq“? Je to skvělý nástroj příkazového řádku, který nahlásí nebo vynechá jakýkoli duplicitní text v daném vstupu. Je to součást GNU coreutils, takže je k dispozici v každém systému UNIX / Linux. Začněme s „uniq“!

Využití Uniq

Zde vypadá základní struktura příkazů „uniq“.

uniq

Podívejme se například na obsah „duplikátu“.txt “. Samozřejmě obsahuje mnoho duplicitního textového obsahu pro účely tohoto článku.

kočičí duplikát.txt | třídit

Zřetelně existuje duplicitní obsah, správně? Pojďme je filtrovat přes „uniq“.

duplikát kočky | třídit | uniq

Výstup vypadá tak lépe pouze s jedinečnými hodnotami, správně?

Pro práci však nemusíte používat metodu potrubí. „Uniq“ může přímo pracovat také se soubory.

uniq

Mazání duplicitního obsahu

Ano, smazání duplicitního obsahu ze vstupu a zachování pouze prvního výskytu je výchozím chováním „uniq“. Všimněte si, že k tomuto odstranění duplicit dochází pouze tehdy, když „uniq“ najde souběžné duplicitní položky.

Podívejme se na tento příklad. Vytvořil jsem další „duplikát1.txt ”soubor, který obsahuje duplicitní položky. Nesousedí však navzájem.

bat duplikát 1.txt

Nyní filtrujte tento výstup pomocí „uniq“.

kočičí duplikát.txt | uniq

Veškerý duplicitní obsah je tam! Proto, pokud pracujete s něčím podobným, projděte obsah „tříděním“, abyste se ujistili, že je veškerý obsah seřazen a duplikáty sousedí.

kočičí duplikát.txt | třídit

„Uniq“ nyní bude dělat svou práci normálně.

kočičí duplikát.txt | třídit | uniq

Počet opakování

Pokud chcete, můžete zkontrolovat, kolikrát se řádek v obsahu opakuje. Stačí použít příznak „-c“ s „uniq“.

kočičí duplikát.txt | třídit | uniq -c

Poznámka: Program „uniq“ bude také pravidelně odstraňovat duplikáty.

Tisk duplicitních řádků

Většinou se chceme duplikátů zbavit, správně? Tentokrát, co takhle jen zkontrolovat, co je duplikát?

Ano, „uniq“ je toho také schopen. V tomto případě musíte použít volbu „-D“. Mezitím použiji „třídění“, abych měl lepší a rafinovanější výsledek.

kočičí duplikát.txt | třídit | uniq -D

WOW! To je MNOHO duplikátů! Všechny duplikáty jsou však seskupeny dohromady, což ztěžuje navigaci. Co tak přidat mezi nimi malou mezeru?

uniq --all-repeat =

Zde jsou k dispozici 3 různé metody: žádný (výchozí hodnota), předřadit a oddělit.

kočičí duplikát.txt | třídit | uniq --all-repeat = prepend

kočičí duplikát.txt | třídit | uniq --all-opakoval = oddělit

Nyní to vypadá lépe.

Přeskočení kontroly jedinečnosti

V mnoha případech musí být jedinečnost zkontrolována jinou částí linky.

Pochopme to na příkladu. V souboru duplicate1.txt, řekněme, že duplikace je určena druhou částí. Jak řeknete „uniq“, aby to udělal? Obecně kontroluje první pole (ve výchozím nastavení). Můžeme to také udělat. Tento příznak „-f“ slouží pouze k provedení této úlohy.

uniq -f
kočičí duplikát.txt | třídit -k 2 | uniq -f 1

Pokud vás zajímá příznak „třídění“, je třeba říci „třídění“, aby se třídělo podle druhého sloupce.

Zobrazit všechny řádky kromě samostatných duplikátů

Podle všech výše zmíněných příkladů udržuje „uniq“ pouze první výskyt duplikovaného obsahu a zbytek odstraní. Co takhle odstranit duplicitní obsah úplně? Ano, pomocí příznaku „-u“ můžeme vynutit „uniq“, aby ponechal pouze neopakující se řádky.

kočičí duplikát.txt | třídit

kočičí duplikát.txt | třídit | uniq -u

Hmm, příliš mnoho duplikátů je nyní pryč ..

Přeskočit počáteční znaky

Diskutovali jsme o tom, jak říci „uniq“, aby dělal svou práci pro jiná pole, správně? Je čas zahájit kontrolu po několika počátečních znacích. Z tohoto důvodu bude příznak „-s“ doprovázený počtem znaků říkat „uniq“, aby vykonal práci.

kočičí duplikát.txt | třídit -k 2 | uniq -s 2

Je to podobné jako v příkladu, kdy měl „uniq“ dělat svůj úkol pouze ve druhém poli. Uvidíme další příklad s tímto trikem.

kočičí duplikát.txt | třídit | uniq -s 5

POUZE zkontrolujte počáteční znaky

Stejně jako jsme řekli „uniq“, aby přeskočil prvních pár znaků, je také možné říct „uniq“, aby omezil kontrolu u prvních pár znaků. Pro tento účel existuje vyhrazený příznak „-w“.

kočičí duplikát.txt | třídit | uniq -w 5

Tento příkaz říká „uniq“, aby provedl kontrolu jedinečnosti během prvních 5 znaků.

Podívejme se na další příklad tohoto příkazu.

kočičí duplikát.txt | třídit | uniq -w 5

Vymaže všechny ostatní instance „duplicitních“ záznamů, protože zkontrolovalo jedinečnost části „dupli“.

Necitlivost na velká a malá písmena

Při kontrole jedinečnosti zkontroluje „uniq“ také velikost písmen. V některých situacích nezáleží na citlivosti na velká a malá písmena, takže můžeme použít příznak „-i“ tak, aby „uniq“ nerozlišoval velká a malá písmena.

Zde vám představuji ukázkový soubor.

Některé opravdu chytré duplikace se směsí velkých a malých písmen, správně? Je čas vyzvat sílu „uniq“ k očištění nepořádku!

kočičí duplikát.txt | třídit | uniq -i

Přání uděleno!

Výstup zakončený NULL

Výchozí chování „uniq“ je ukončení výstupu novým řádkem. Výstup však lze ukončit také NULL. To je docela užitečné, pokud ho budete používat ve skriptování. Zde funguje příznak „-z“.

kočičí duplikát.txt | třídit | uniq -z

Kombinace více příznaků

Naučili jsme se řadu vlajek „uniq“, správně? Co takhle je spojit dohromady?

Například kombinuji necitlivost na velká a malá písmena a počet opakování dohromady.

Pokud někdy plánujete smíchat více vlajek dohromady, nejprve se ujistěte, že společně fungují správně. Někdy prostě věci nefungují tak, jak by měly.

Závěrečné myšlenky

„Uniq“ je zcela jedinečný nástroj, který Linux nabízí. Díky tolika výkonným funkcím může být užitečný mnoha způsoby. Seznam všech příznaků a jejich vysvětlení najdete na manuálových a informačních stránkách „uniq“.

muž uniq

info uniq

Užívat si!

Hry Výukový program Battle for Wesnoth
Výukový program Battle for Wesnoth
The Battle for Wesnoth je jednou z nejpopulárnějších strategických her s otevřeným zdrojovým kódem, které si v tuto chvíli můžete zahrát. Tato hra se ...
Hry 0 A.D. Tutorial
0 A.D. Tutorial
Z mnoha strategických her venku je 0 A.D. dokáže vyniknout jako komplexní titul a velmi hluboká, taktická hra, přestože je otevřeným zdrojem. Vývoj hr...
Hry Výukový program Unity3D
Výukový program Unity3D
Úvod do Unity 3D Unity 3D je výkonný engine pro vývoj her. Jedná se o multiplatformní platformu, která vám umožňuje vytvářet hry pro mobilní zařízení,...