Linux-komennot

Linux uniq -komento

Linux uniq -komento
Mikä on "uniq"? Se on loistava komentorivityökalu, joka ilmoittaa tai jättää pois kaikki kaksoiskappaleet annetussa syötteessä. Se on osa GNU-ytimiä, joten se on saatavana jokaisessa UNIX / Linux-järjestelmässä. Aloitetaan sanalla "uniq"!

Uniq-käyttö

Näin "uniq" -komentojen perusrakenne näyttää.

uniq

Tarkastellaan esimerkiksi ”duplicate.txt ”. Tietysti se sisältää paljon päällekkäistä tekstisisältöä tämän artikkelin tarkoituksiin.

kissan kaksoiskappale.txt | järjestellä

Sisältöä on selvästi päällekkäinen, eikö? Suodatetaan heidät "uniqin" kautta.

kissan kaksoiskappale | lajitella | uniq

Tulos näyttää niin paremmalta vain ainutlaatuisilla arvoilla?

Sinun ei kuitenkaan tarvitse käyttää putkimenetelmää työn tekemiseen. “Uniq” voi toimia myös tiedostoissa.

uniq

Poistetaan päällekkäistä sisältöä

Kyllä, päällekkäisen sisällön poistaminen syötteestä ja vain ensimmäisen esiintymisen säilyttäminen on “uniq” -oletuskäyttäytyminen. Huomaa, että tämä kaksoiskappaleiden poisto tapahtuu vain, kun “uniq” löytää samanaikaisia ​​päällekkäisiä kohteita.

Katsotaanpa tämä esimerkki. Olen luonut toisen kopion1.txt ”tiedosto, joka sisältää päällekkäisiä kohteita. Ne eivät kuitenkaan ole vierekkäin.

lepakko kaksoiskappale 1.txt

Suodata nyt tämä tulos käyttämällä "uniq".

kissan kaksoiskappale 1.txt | uniq

Kaikki päällekkäiset sisällöt ovat siellä! Siksi, jos työskentelet jotain vastaavaa, vie sisältö läpi "lajittelu" varmistaaksesi, että kaikki sisältö on lajiteltu ja kaksoiskappaleet ovat vierekkäin.

kissan kaksoiskappale 1.txt | järjestellä

Nyt “uniq” tekee työnsä normaalisti.

kissan kaksoiskappale 1.txt | lajitella | uniq

Toistojen määrä

Halutessasi voit tarkistaa, kuinka monta kertaa rivi toistetaan sisällössä. Käytä vain "-c" -merkkiä "uniq" -merkillä.

kissan kaksoiskappale.txt | lajitella | uniq -c

Huomaa: "uniq" tekee myös säännöllisen tehtävänsä kaksoiskappaleiden poistamiseksi.

Päällekkäisten rivien tulostaminen

Useimmiten haluamme päästä eroon kaksoiskappaleista? Tällä kertaa, kuinka vain tarkistaa kaksoiskappaleet?

Kyllä, "uniq" pystyy myös tekemään sen. Tässä tapauksessa sinun on käytettävä -D-vaihtoehtoa. Käytän "lajittelua" välissä saadaksesi paremman ja hienostuneemman tuloksen.

kissan kaksoiskappale.txt | lajitella | uniq -D

VAU! Se on paljon kopioita! Kaikki kaksoiskappaleet on kuitenkin ryhmitelty yhteen, mikä vaikeuttaa selaamista. Entä lisäämällä pieni aukko väliin?

uniq - kaikki toistuvat =

Tässä on käytettävissä 3 erilaista menetelmää: ei mitään (oletusarvo), etukäteen ja erillinen.

kissan kaksoiskappale.txt | lajitella | uniq - kaikki toistuvat = riippuvat

kissan kaksoiskappale.txt | lajitella | uniq - kaikki toistuvat = erilliset

Nyt se näyttää paremmalta.

Ohitetaan ainutlaatuisuuden tarkistus

Monissa tapauksissa ainutlaatuisuus on tarkistettava eri linjan osilla.

Ymmärretään tämä esimerkillä. Tiedostokopiossa 1.txt, sanotaan, että päällekkäisyyden määrittää toinen osa. Kuinka käsket “uniqia” tekemään niin? Yleensä se tarkistaa ensimmäisen kentän (oletuksena). No, voimme myös tehdä sen. Siellä on tämä "-f" lippu tehdä vain työtä.

uniq -f
kissan kaksoiskappale 1.txt | lajittele -k 2 | uniq -f 1

Jos mietit "lajitella" -lippua, se kertoo "lajitella" lajiteltavaksi toisen sarakkeen perusteella.

Näytä kaikki rivit paitsi erilliset kaksoiskappaleet

Kaikkien edellä mainittujen esimerkkien mukaan “uniq” säilyttää vain kopioidun sisällön ensimmäisen esiintymisen ja poistaa loput. Entä kopioiden poistaminen kokonaan? Kyllä, käyttämällä lippua "-u", voimme pakottaa "uniq" pitämään vain toistamattomat viivat.

kissan kaksoiskappale.txt | järjestellä

kissan kaksoiskappale.txt | lajitella | uniq -u

Hmm, liian monta kopiota on nyt kadonnut ..

Ohita alkumerkit

Keskustelimme siitä, kuinka kertoa “uniq: lle” tehtävänsä muille aloille, eikö niin? On aika aloittaa tarkistus useiden alkumerkkien jälkeen. Tätä tarkoitusta varten ”-s” -merkki ja merkkien lukumäärä kertovat ”uniq”: lle tehtävän suorittamisen.

kissan kaksoiskappale 1.txt | lajittele -k 2 | uniq -s 2

Se on samanlainen kuin esimerkki, jossa “uniq” oli tehtävä tehtävänsä vain toisella kentällä. Katsotaanpa toinen esimerkki tällä temppulla.

kissan kaksoiskappale.txt | lajitella | uniq -s 5

Tarkista VAIN alkumerkit

Aivan kuten tapa, jolla käskimme “uniqin” ohittaa pari ensimmäistä merkkiä, on myös mahdollista sanoa “uniq” rajoittamaan tarkistus parin ensimmäisen merkin sisällä. Tätä tarkoitusta varten on oma "-w" -lippu.

kissan kaksoiskappale.txt | lajitella | uniq -w 5

Tämä komento käskee “uniqin” suorittamaan ainutlaatuisuuden tarkistuksen viiden ensimmäisen merkin sisällä.

Katsotaanpa toinen esimerkki tästä komennosta.

kissan kaksoiskappale 1.txt | lajitella | uniq -w 5

Se pyyhkii pois kaikki muut "päällekkäiset" merkinnät, koska se tarkisti "dupli" -osan ainutlaatuisuuden.

Tapausherkkyys

Tarkistettaessa ainutlaatuisuutta "uniq" tarkistaa myös merkkien kirjainkoon. Joissakin tilanteissa kirjainkoon herkkyydellä ei ole merkitystä, joten voimme käyttää lippua "-i" tehdäksesi "uniq" -tunnuksesta merkitsemättömän.

Tässä esitän sinulle demotiedoston.

Jotkut todella fiksu kopiointi isojen ja pienten kirjainten sekoituksella, oikea? On aika kutsua "uniqin" vahvuus puhdistamaan sotku!

kissan kaksoiskappale 1.txt | lajitella | uniq -i

Toive myönnetty!

NULL-päätteinen lähtö

”Uniq” -käyttäytymisen oletusarvo on lopettaa lähtö uudella rivillä. Lähtö voidaan kuitenkin päättää myös NULL-arvolla. Se on melko hyödyllistä, jos aiot käyttää sitä komentosarjoissa. Tässä lippu "-z" tekee työn.

kissan kaksoiskappale.txt | lajitella | uniq -z

Yhdistämällä useita lippuja

Opimme useita lippuja "uniq", oikeassa? Entä niiden yhdistäminen yhteen?

Yhdistän esimerkiksi tapausherkkyyden ja toistojen määrän yhdessä.

Jos aiot koskaan sekoittaa useita lippuja yhteen, varmista ensin, että ne toimivat oikealla tavalla yhdessä. Joskus asiat eivät vain toimi niin kuin pitäisi.

Lopulliset ajatukset

“Uniq” on melko ainutlaatuinen työkalu, jota Linux tarjoaa. Niin paljon tehokkaita ominaisuuksia, se voi olla hyödyllinen monin tavoin. Löydät luettelon kaikista lipuista ja niiden selityksistä "uniq" -oppaasta ja tietosivuilta.

mies uniq

info uniq

Nauttia!

Kuinka näyttää OSD-peitto koko näytön Linux-sovelluksissa ja peleissä
Koko näytön pelien pelaaminen tai sovellusten käyttäminen häiriöttömässä koko näytön tilassa voi estää sinut paneelissa tai tehtäväpalkissa näkyvistä ...
Viisi parasta pelin kaappauskorttia
Olemme kaikki nähneet ja rakastaneet suoratoistopelejä YouTubessa. PewDiePie, Jakesepticye ja Markiplier ovat vain joitain huippupelaajista, jotka ova...
How to Develop a Game on Linux
A decade ago, not many Linux users would predict that their favorite operating system would one day be a popular gaming platform for commercial video ...