„Linux“ komandos

„Linux uniq“ komanda

„Linux uniq“ komanda
Kas yra „uniq“? Tai puikus komandinės eilutės įrankis, kuris praneš arba praleidžia bet kurį dublikato tekstą nurodytame įvestyje. Tai yra GNU „coreutils“ dalis, todėl prieinama kiekvienoje UNIX / Linux sistemoje. Pradėkime nuo „uniq“!

Uniq naudojimas

Štai kaip atrodo „uniq“ komandų pagrindinė struktūra.

unikalus

Pavyzdžiui, patikrinkime „dublikato“ turinį.txt “. Žinoma, šiame straipsnyje yra daug teksto turinio.

katės dublikatas.txt | rūšiuoti

Aišku, turinys aiškiai sutampa? Filtruokime juos per „uniq“.

katės kopija | rūšiuoti | unikalus

Išvestis taip geriau atrodo tik su unikaliomis vertėmis, tiesa?

Tačiau norint atlikti darbą tiesiog nereikia naudoti vamzdynų metodo. „Uniq“ taip pat gali tiesiogiai dirbti su failais.

unikalus

Ištrinamas pasikartojantis turinys

Taip, numatytoji „uniq“ elgsena yra ištrinti pasikartojantį turinį iš įvesties ir išlaikyti tik pirmą atvejį. Atminkite, kad šis pasikartojantis ištrynimas įvyksta tik tada, kai „uniq“ randa tuo pačiu metu pasikartojančius elementus.

Patikrinkime šį pavyzdį. Sukūriau dar vieną „dublikatą1.txt “failas, kuriame yra pasikartojančių elementų. Tačiau jie nėra greta vienas kito.

šikšnosparnio dublikatas.txt

Dabar filtruokite šią išvestį naudodami „uniq“.

katės dublikatas.txt | unikalus

Ten yra visas pasikartojantis turinys! Štai kodėl, jei dirbate su kažkuo panašiu į tai, pateikite turinį per „rūšiavimą“, kad įsitikintumėte, jog visas turinys yra rūšiuojamas ir dublikatai yra greta vienas kito.

katės dublikatas.txt | rūšiuoti

Dabar „uniq“ atliks savo darbą normaliai.

katės dublikatas.txt | rūšiuoti | unikalus

Pakartojimų skaičius

Jei norite, galite patikrinti, kiek kartų eilutė kartojama turinyje. Tiesiog naudokite „-c“ vėliavą su „uniq“.

katės dublikatas.txt | rūšiuoti | uniq -c

Pastaba: „uniq“ taip pat reguliariai ištrins pasikartojančias kopijas.

Spausdinti pasikartojančias eilutes

Dažniausiai norime atsikratyti dublikatų, tiesa? Šį kartą kaip tiesiog patikrinti, kas yra kopija?

Taip, „uniq“ taip pat sugeba tai padaryti. Tokiu atveju turite naudoti parinktį „-D“. Norėdamas gauti geresnį, patobulintą rezultatą, naudosiu „rūšiavimą“.

katės dublikatas.txt | rūšiuoti | uniq -D

OHO! Tai DAUG dublikatų! Tačiau visi dublikatai yra sugrupuoti kartu, todėl sunku naršyti. Kaip būtų, jei tarp jų būtų nedidelis tarpas?

uniq - visi kartojami =

Čia galimi 3 skirtingi metodai: nė vieno (numatytoji vertė), išankstinio ir atskiro.

katės dublikatas.txt | rūšiuoti | uniq - visi kartojami = priklauso

katės dublikatas.txt | rūšiuoti | uniq - visi kartojami = atskirai

Dabar tai atrodo geriau.

Praleidžiamas unikalumo patikrinimas

Daugeliu atvejų unikalumą turi patikrinti kita linijos dalis.

Supraskime tai pavyzdžiu. Failo dublikate1.txt, tarkime, kad dubliavimą lemia antroji dalis. Kaip pasakyti „uniq“ tai padaryti? Paprastai jis tikrina pirmąjį lauką (pagal numatytuosius nustatymus). Na, mes taip pat galime tai padaryti. Yra ši „-f“ vėliava, kad atliktumėte tik darbą.

uniq -f
katės dublikatas.txt | rūšiuoti -k 2 | uniq -f 1

Jei jums įdomu su „rūšiuoti“ vėliava, tai nurodykite „rūšiuoti“ rūšiuoti pagal antrąjį stulpelį.

Rodyti visas eilutes, išskyrus atskiras kopijas

Remiantis visais aukščiau paminėtais pavyzdžiais, „uniq“ išlaiko tik pirmą kartą pasikartojantį turinį, o likusį pašalina. Kaip iš viso pašalinti pasikartojantį turinį? Taip, naudodamiesi vėliava „-u“, mes galime priversti „uniq“ išlaikyti tik nesikartojančias eilutes.

katės dublikatas.txt | rūšiuoti

katės dublikatas.txt | rūšiuoti | uniq -u

Hmm, per daug dublikatų dabar nebėra ..

Praleisti pradinius simbolius

Aptarėme, kaip pasakyti „uniq“ atlikti savo darbą kitose srityse, tiesa? Atėjo laikas pradėti tikrinimą po daugybės pradinių simbolių. Šiuo tikslu „-s“ vėliava su simbolių skaičiumi nurodys „uniq“ atlikti darbą.

katės dublikatas.txt | rūšiuoti -k 2 | uniq -s 2

Tai panašu į pavyzdį, kai „uniq“ turėjo atlikti savo užduotį tik antrame lauke. Pažiūrėkime dar vieną šio triuko pavyzdį.

katės dublikatas.txt | rūšiuoti | uniq -s 5

Patikrinkite TIK pradinius simbolius

Kaip ir tai, kaip liepėme „uniq“ praleisti pirmuosius poros simbolius, taip pat galima pasakyti „uniq“ tiesiog apriboti pirmųjų poros simbolių patikrinimą. Šiam tikslui yra skirta „-w“ vėliava.

katės dublikatas.txt | rūšiuoti | uniq -w 5

Ši komanda nurodo „uniq“ atlikti unikalumo patikrą per pirmuosius 5 simbolius.

Pažiūrėkime dar vieną šios komandos pavyzdį.

katės dublikatas.txt | rūšiuoti | uniq -w 5

Jis sunaikina visus kitus „pasikartojančių“ įrašų atvejus, nes patikrino „dupli“ dalies unikalumą.

Didžiųjų raidžių nejautrumas

Tikrindamas unikalumą, „uniq“ taip pat tikrina, ar nėra simbolių. Kai kuriose situacijose didžiųjų ir mažųjų raidžių jautrumas nėra svarbus, todėl galime naudoti žymę „-i“, kad „uniq“ didžiosios ir mažosios raidės būtų nejautrios.

Čia aš pateikiu jums demonstracinį failą.

Kai kurie išties sumanūs dubliavimas su didžiųjų ir mažųjų raidžių mišiniu, tiesa? Atėjo laikas pasitelkti „uniq“ stiprybę, kad išvalytumėte netvarką!

katės dublikatas.txt | rūšiuoti | uniq -i

Noras patenkintas!

NULL nutraukta išvestis

Numatytasis „uniq“ elgesys yra baigti išvestį nauja eilute. Tačiau išvestį taip pat galima nutraukti naudojant NULL. Tai gana naudinga, jei ketinate tai naudoti scenarijuose. Čia darbą atlieka vėliava „-z“.

katės dublikatas.txt | rūšiuoti | uniq -z

Kelių vėliavų derinimas

Sužinojome daugybę „uniq“ vėliavų, tiesa? Kaip sujungti juos kartu?

Pavyzdžiui, derinu nejautrumo atvejį ir pakartojimų skaičių.

Jei kada nors planuojate maišyti kelias vėliavas, pirmiausia įsitikinkite, kad jos veikia teisingai kartu. Kartais viskas neveikia taip, kaip turėtų.

Paskutinės mintys

„Uniq“ yra gana unikalus įrankis, kurį siūlo „Linux“. Turėdamas tiek galingų funkcijų, jis gali būti naudingas daugybe būdų. Norėdami sužinoti visų vėliavų sąrašą ir jų paaiškinimus, ieškokite „uniq“ žmogaus ir informacijos puslapių.

vyras unik

info uniq

Mėgautis!

5 geriausios žaidimų fiksavimo kortos
Visi mes matėme ir pamėgome srautinius žaidimus „YouTube“. „PewDiePie“, „Jakesepticye“ ir „Markiplier“ yra tik vieni iš geriausių žaidėjų, kurie uždir...
Kaip sukurti žaidimą „Linux“
Prieš dešimtmetį nedaugelis „Linux“ vartotojų numatė, kad jų mėgstama operacinė sistema vieną dieną bus populiari komercinių vaizdo žaidimų žaidimų pl...
Atvirojo kodo komercinių žaidimų variklių uostai
Nemokami atvirojo kodo ir įvairių platformų žaidimų varikliai gali būti naudojami žaidžiant senus ir kai kuriuos gana naujus žaidimų pavadinimus. Šiam...