Príkazy pre Linux

Príkaz Linux uniq

Príkaz Linux uniq
Čo je „uniq“? Je to vynikajúci nástroj príkazového riadku, ktorý nahlási alebo vynechá akýkoľvek duplicitný text v danom vstupe. Je to súčasť GNU coreutils, a tak je k dispozícii v každom jednom systéme UNIX / Linux. Začnime s programom „uniq“!

Využitie Uniq

Tu je príklad, ako vyzerá základná štruktúra príkazov „uniq“.

uniq

Pozrime sa napríklad na obsah „duplikátu“.TXT". Na účely tohto článku samozrejme obsahuje veľa duplicitného textového obsahu.

duplikát mačky.txt | triediť

Je zrejmé, že existuje duplicitný obsah, že? Poďme ich filtrovať cez „uniq“.

duplikát mačky triediť | uniq

Výstup vyzerá tak lepšie iba s jedinečnými hodnotami, však?

Na vykonanie práce však jednoducho nemusíte používať potrubnú metódu. „Uniq“ môže priamo pracovať aj so súbormi.

uniq

Odstraňuje sa duplicitný obsah

Áno, odstránenie duplicitného obsahu zo vstupu a zachovanie iba prvého výskytu je predvoleným správaním „uniq“. Upozorňujeme, že k tomuto odstráneniu duplikátov dôjde iba vtedy, keď „uniq“ nájde súbežné duplicitné položky.

Pozrime sa na tento príklad. Vytvoril som ďalší „duplikát1.txt ”súbor, ktorý obsahuje duplicitné položky. Nesúvisia však navzájom.

bat duplikát1.TXT

Teraz tento výstup filtrujte pomocou výrazu „uniq“.

duplikát mačky1.txt | uniq

Je tu všetok duplicitný obsah! Preto ak pracujete s niečím podobným, pretiahnite obsah cez „zoradenie“, aby ste sa uistili, že je všetok obsah zoradený a duplikáty susedia navzájom.

duplikát mačky1.txt | triediť

Teraz bude „uniq“ robiť svoju prácu normálne.

duplikát mačky1.txt | triediť | uniq

Počet opakovaní

Ak chcete, môžete skontrolovať, koľkokrát sa riadok v obsahu opakuje. Stačí použiť príznak „-c“ s výrazom „uniq“.

duplikát mačky.txt | triediť | uniq -c

Poznámka: Program „uniq“ bude tiež pravidelne odstraňovať duplikáty.

Tlač duplicitných riadkov

Väčšinou sa chceme zbaviť duplikátov, že? Tentokrát, čo tak skontrolovať, čo je duplikát?

Áno, program „uniq“ to tiež dokáže. V takom prípade musíte použiť voľbu „-D“. Budem používať „triedenie“ medzi, aby som mal lepší a rafinovanejší výsledok.

duplikát mačky.txt | triediť | uniq -D

WOW! To je MNOHO duplikátov! Všetky duplikáty sú však zoskupené, takže je ťažké sa v nich orientovať. Čo tak medzi tým pridať malú medzeru?

uniq --všetko opakované =

Tu sú k dispozícii 3 rôzne metódy: žiadna (predvolená hodnota), predpona a samostatná.

duplikát mačky.txt | triediť | uniq --all-repeat = prepend

duplikát mačky.txt | triediť | uniq --všetko opakované = oddelené

Teraz to vyzerá lepšie.

Preskočenie kontroly jedinečnosti

V mnohých prípadoch musí byť jedinečnosť skontrolovaná inou časťou linky.

Poďme to pochopiť na príklade. V súbore duplikát1.txt, povedzme, že duplikácia je určená druhou časťou. Ako poviete „uniq“, aby to urobil? Spravidla kontroluje prvé pole (predvolene). Môžeme to urobiť tiež. Existuje príznak „-f“, ktorý slúži iba na vykonanie tejto úlohy.

uniq -f
duplikát mačky1.txt | triediť -k 2 | uniq -f 1

Ak vás zaujíma príznak „zoradiť“, znamená to, že „druh“ sa má zoradiť podľa druhého stĺpca.

Zobraziť všetky riadky okrem samostatných duplikátov

Podľa všetkých vyššie spomenutých príkladov program „uniq“ uchová iba prvý výskyt duplikovaného obsahu a zvyšok odstráni. Čo tak úplne odstrániť duplicitný obsah? Áno, pomocou príznaku „-u“ môžeme vynútiť „uniq“, aby ponechal iba neopakujúce sa riadky.

duplikát mačky.txt | triediť

duplikát mačky.txt | triediť | uniq -u

Hmm, príliš veľa duplikátov je teraz preč ..

Počiatočné znaky preskočte

Diskutovali sme o tom, ako povedať, aby „uniq“ vykonával svoju prácu pre iné oblasti, správne? Je čas začať s kontrolou po niekoľkých počiatočných znakoch. Z tohto dôvodu bude príznak „-s“ sprevádzaný počtom znakov hovoriť programu „uniq“, aby vykonal úlohu.

duplikát mačky1.txt | triediť -k 2 | uniq -s 2

Je to podobné ako v prípade, keď mal program „uniq“ vykonávať svoje úlohy iba v druhom poli. Pozrime sa na ďalší príklad tohto triku.

duplikát mačky.txt | triediť | uniq -s 5

LEN začiarknite začiatočné znaky

Rovnako, ako sme povedali „uniq“, aby preskočil prvých pár znakov, je tiež možné povedať „uniq“, aby obmedzil kontrolu v rámci prvých pár znakov. Pre tento účel existuje vyhradený príznak „-w“.

duplikát mačky.txt | triediť | uniq -w 5

Tento príkaz povie programu „uniq“, aby vykonal kontrolu jedinečnosti do prvých 5 znakov.

Pozrime sa na ďalší príklad tohto príkazu.

duplikát mačky1.txt | triediť | uniq -w 5

Vymaže všetky ostatné výskyty „duplicitných“ záznamov, pretože vykonala kontrolu jedinečnosti v časti „dupli“.

Necitlivosť na malé a veľké písmená

Pri kontrole jedinečnosti program „uniq“ kontroluje aj veľkosť písmen. V niektorých situáciách nezáleží na rozlišovaní malých a veľkých písmen, takže môžeme použiť príznak „-i“ na znecitlivenie veľkosti písma „uniq“.

Tu vám predstavím ukážkový súbor.

Niektoré skutočne dômyselné duplikácie so zmesou malých a veľkých písmen, vpravo? Je čas vyzvať silu „uniq“ na vyčistenie neporiadku!

duplikát mačky1.txt | triediť | uniq -i

Prianie splnené!

Výstup ukončený hodnotou NULL

Predvolené správanie „uniq“ je ukončenie výstupu novým riadkom. Výstup však možno ukončiť aj NULL. To je celkom užitočné, ak ho použijete v skriptovaní. Tu slúži príznak „-z“.

duplikát mačky.txt | triediť | uniq -z

Kombinácia viacerých vlajok

Naučili sme sa niekoľko vlajok „uniq“, správne? Čo tak ich skombinovať dokopy?

Napríklad kombinujem necitlivosť na veľké a malé písmená a počet opakovaní.

Ak niekedy plánujete zmiešať viacero vlajok, najskôr sa uistite, že spolu fungujú správne. Niekedy veci jednoducho nefungujú tak, ako by mali.

Záverečné myšlienky

„Uniq“ je celkom jedinečný nástroj, ktorý Linux ponúka. Vďaka toľkým výkonným funkciám môže byť užitočný mnohými spôsobmi. Zoznam všetkých príznakov a ich vysvetlenie nájdete na manuálových a informačných stránkach „uniq“.

muž uniq

info uniq

Užite si to!

Hry Ako zobraziť prekrytie OSD v linuxových aplikáciách a hrách na celú obrazovku
Ako zobraziť prekrytie OSD v linuxových aplikáciách a hrách na celú obrazovku
Hranie hier na celú obrazovku alebo používanie aplikácií v režime rozptýlenia zadarmo na celú obrazovku vás môže odrezať od relevantných systémových i...
Hry Top 5 kariet na zachytávanie hier
Top 5 kariet na zachytávanie hier
Všetci sme videli a milovali streamovanie hier na YouTube. PewDiePie, Jakesepticye a Markiplier sú iba niektorí z najlepších hráčov, ktorí zarobili mi...
Hry Ako vyvíjať hru v systéme Linux
Ako vyvíjať hru v systéme Linux
Pred desiatimi rokmi by len málo používateľov Linuxu predpovedalo, že ich obľúbený operačný systém bude jedného dňa populárnou hernou platformou pre k...