Kuidas leida korduvaid andmeid Linuxi tekstifailist Uniq -iga

Kuidas leida korduvaid andmeid Linuxi tekstifailist Uniq -iga

Kas olete kunagi kohanud tekstifaile, millel on korduvad read ja dubleerivad sõnad? Võib -olla töötate regulaarselt käsuväljundiga ja soovite filtreerida neid erinevate stringide jaoks. Kui rääkida tekstifailidest ja üleliigsete andmete eemaldamisest Linuxis, on uniq käsk teie parim valik.





Selles artiklis käsitleme põhjalikult käsku uniq koos üksikasjaliku juhendiga selle kohta, kuidas käsku kasutada tekstifailist duplikaatide eemaldamiseks.





Mis on uniq käsk?

Linuxi käsku uniq kasutatakse tekstifailis identsete ridade kuvamiseks. See käsk võib olla abiks, kui soovite tekstifailist eemaldada dubleerivad sõnad või stringid. Kuna uniq käsk sobib üleliigsete koopiate leidmiseks külgnevate ridadega, töötab see ainult sorteeritud tekstifailidega.



Õnneks saate toru torustada sorteerima käsku uniq -ga, et korraldada tekstifail käsuga ühilduval viisil. Lisaks korduvate ridade kuvamisele saab uniq käsk lugeda ka duplikaatide esinemist tekstifailis.

Kuidas kasutada käsku uniq

Uniqiga saate kasutada erinevaid valikuid ja lippe. Mõned neist on lihtsad ja teostavad lihtsaid toiminguid, näiteks korduvate ridade printimist, teised aga edasijõudnud kasutajatele, kes töötavad sageli Linuxis tekstifailidega.



Põhisüntaks

Uniq käsu põhisüntaks on järgmine:

uniq option input output

... kus valik on lipp, mida kasutatakse käsu konkreetsete meetodite käivitamiseks, sisend on tekstifail töötlemiseks ja väljund on faili tee, kuhu väljund salvestatakse.





The väljund argument on valikuline ja selle saab vahele jätta. Kui kasutaja ei sisesta sisendfaili, võtab uniq standardväljundi andmed sisendiks. See võimaldab kasutajal uniqi ühendada muud Linuxi käsud .

Tekstifaili näide

Kasutame tekstifaili duplicate.txt käsu sisendina.





127.0.0.1 TCP
127.0.0.1 UDP
Do catch this
DO CATCH THIS
Don't match this
Don't catch this
This is a text file.
This is a text file.
THIS IS A TEXT FILE.
Unique lines are really rare.

Pange tähele, et oleme selle tekstifaili juba sorteerinud sorteerima käsk. Kui töötate mõne muu tekstifailiga, saate seda sortida järgmise käsu abil:

sort filename.txt > sorted.txt

Eemalda duplikaadid

Uniqi kõige elementaarsem kasutus on korduvate stringide eemaldamine sisendist ja ainulaadse väljundi printimine.

uniq duplicate.txt

Väljund:

Pange tähele, et süsteem ei kuva rea ​​teist esinemist See on tekstifail . Samuti trükib ülalnimetatud käsk ainult faili unikaalsed read ja ei mõjuta algse tekstifaili sisu.

Loendage korduvaid ridu

Korduvate ridade arvu väljastamiseks tekstifailis kasutage -c lipp vaikimisi käsuga.

uniq -c duplicate.txt

Väljund:

Süsteem kuvab iga tekstifailis leiduva rea ​​arvu. Näete seda joont See on tekstifail esineb failis kaks korda. Vaikimisi on uniq käsk tõstutundlik.

Kui soovite printida tekstifailist ainult duplikaatridu, kasutage -D lipp. The -D tähistab Duplikaat .

uniq -D duplicate.txt

Süsteem kuvab väljundit järgmiselt.

This is a text file.
This is a text file.

Duplikaatide kontrollimisel jätke väljad vahele

Kui soovite stringide sobitamise ajal teatud arvu välju vahele jätta, võite kasutada -f lipu käsuga. The -f tähistab Väli .

Mõelge järgmisele tekstifailile fields.txt .

192.168.0.1 TCP
127.0.0.1 TCP
354.231.1.1 TCP
Linux FS
Windows FS
macOS FS

Esimese välja vahelejätmiseks tehke järgmist.

uniq -f 1 fields.txt

Väljund:

192.168.0.1 TCP
Linux FS

Eespool nimetatud käsk jättis esimese välja (IP -aadressid ja OS -i nimed) vahele ning sobis teise sõnaga (TCP ja FS). Seejärel kuvati väljundina iga vaste esimene esinemine.

Ignoreeri võrdlemisel tegelasi

Nagu väljade vahelejätmine, saate ka tegelasi vahele jätta. The -s lipp võimaldab teil määrata duplikaatide ridade sobitamisel vahelejäetavate märkide arvu. See funktsioon aitab, kui andmed, millega töötate, on järgmises loendis:

kuidas põleti telefon töötab
1. First
2. Second
3. Second
4. Second
5. Third
6. Third
7. Fourth
8. Fifth

Faili kahe esimese märgi (loendite nummerdamise) ignoreerimiseks list.txt :

uniq -s 2 list.txt

Väljund:

Ülaltoodud väljundis ignoreeriti kahte esimest märki ja ülejäänud sobitati unikaalsete ridade jaoks.

Kontrollige duplikaatide esimest tähemärki

The -sisse lipp võimaldab teil kontrollida duplikaatide olemasolu ainult fikseeritud arvu märke. Näiteks:

uniq -w 2 duplicate.txt

Eespool nimetatud käsk sobib ainult kahe esimese märgiga ja prindib unikaalsed read, kui neid on.

Väljund:

Eemaldage tõstutundlikkus

Nagu eespool mainitud, on uniq failis ridade sobitamisel tõstutundlik. Tähemärkide ignoreerimiseks kasutage -mina valik käsuga.

uniq -i duplicate.txt

Näete järgmist väljundit.

Märkus ülaltoodud väljundis, uniq ei näidanud ridu PÜÜGI SEE ja SEE ON TEKSTifail .

Väljundi saatmine faili

Uniq käsu väljundi saatmiseks faili saate kasutada Väljundi ümbersuunamine ( > ) märk järgmiselt:

uniq -i duplicate.txt > otherfile.txt

Väljundi saatmisel tekstifaili ei kuva süsteem käsu väljundit. Saate uue faili sisu kontrollida, kasutades kass käsk.

cat otherfile.txt

Võite kasutada ka muid viise saatke käsurea väljund Linuxi faili .

Korduvate andmete analüüsimine Uniq -iga

Enamiku ajast töötate Linuxi serverite haldamise ajal kas terminalis või redigeerite tekstifaile. Seetõttu võib teadmine, kuidas tekstifailist ridade üleliigsed koopiad eemaldada, olla teie Linuxi oskuste jaoks suur eelis.

Tekstifailidega töötamine võib olla masendav, kui te ei tea, kuidas failis teksti filtreerida ja sortida. Teie töö hõlbustamiseks on Linuxil mitu teksti redigeerimise käsku, näiteks sed ja awk mis võimaldavad teil tõhusalt töötada tekstifailide ja käsurea väljunditega.

Jaga Jaga Piiksuma E -post Need 10 Sedi näidet muudavad teid Linuxi energiatarbijaks

Kas soovite saada Linuxi energiatarbijaks? Sediga hakkama saamine aitab. Õppige nende 10 näite põhjal.

Loe edasi
Seotud teemad
  • Linux
  • Linux
Autori kohta Deepesh Sharma(79 artiklit avaldatud)

Deepesh on MUO Linuxi noorem toimetaja. Ta kirjutab Linuxis informatiivseid juhendeid, mille eesmärk on pakkuda kõigile uustulnukatele õndsat kogemust. Filmide osas pole kindel, aga kui soovite tehnoloogiast rääkida, on ta teie mees. Vabal ajal võite teda lugeda raamatuid, kuulata erinevaid muusikažanre või mängida kitarri.

Rohkem Deepesh Sharma'st

Telli meie uudiskiri

Liituge meie uudiskirjaga, et saada tehnilisi näpunäiteid, ülevaateid, tasuta e -raamatuid ja eksklusiivseid pakkumisi!

Tellimiseks klõpsake siin