Kako pronaći duple podatke u Linux tekstualnoj datoteci pomoću uniq -a

Kako pronaći duple podatke u Linux tekstualnoj datoteci pomoću uniq -a

Jeste li ikada naišli na tekstualne datoteke s ponovljenim redovima i dupliciranim riječima? Možda redovito radite s izlazom naredbi i želite ih filtrirati za različite nizove. Što se tiče tekstualnih datoteka i uklanjanja suvišnih podataka u Linuxu, naredba uniq je vaš najbolji izbor.





U ovom ćemo članku detaljno raspravljati o naredbi uniq, zajedno s detaljnim vodičem o tome kako koristiti naredbu za uklanjanje dvostrukih redaka iz tekstualne datoteke.





Što je uniq naredba?

Naredba uniq u Linuxu koristi se za prikaz identičnih redaka u tekstualnoj datoteci. Ova naredba može biti korisna ako želite ukloniti duple riječi ili nizove iz tekstualne datoteke. Budući da naredba uniq odgovara susjednim redovima za pronalaženje suvišnih kopija, radi samo s sortiranim tekstualnim datotekama.





Srećom, možete cijevi vrsta naredba s uniqom za organiziranje tekstualne datoteke na način koji je kompatibilan sa naredbom. Osim prikazivanja ponavljajućih redaka, naredba uniq može računati i pojavljivanje dupliciranih redaka u tekstualnoj datoteci.

Kako koristiti naredbu uniq

Postoje različite opcije i zastavice koje možete koristiti s uniq -om. Neki od njih su osnovni i izvode jednostavne operacije, poput ispisa ponavljanih redaka, dok su drugi za napredne korisnike koji često rade s tekstualnim datotekama na Linuxu.



Osnovna sintaksa

Osnovna sintaksa naredbe uniq je:

uniq option input output

...gdje opcija je zastavica koja se koristi za pozivanje posebnih metoda naredbe, ulazni je tekstualna datoteka za obradu i izlaz je put datoteke koja će pohraniti izlaz.





The izlaz argument nije obavezan i može se preskočiti. Ako korisnik ne navede ulaznu datoteku, uniq uzima podatke sa standardnog izlaza kao ulaz. To omogućuje korisniku da spoji uniq sa druge naredbe Linuxa .

Primjer tekstualne datoteke

Koristit ćemo tekstualnu datoteku duplicate.txt kao ulaz za naredbu.





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.

Imajte na umu da smo ovu tekstualnu datoteku već sortirali pomoću vrsta naredba. Ako radite s nekom drugom tekstualnom datotekom, možete je poredati pomoću sljedeće naredbe:

sort filename.txt > sorted.txt

Uklonite duple linije

Najosnovnija upotreba uniq -a je uklanjanje ponavljajućih nizova iz ulaza i ispis jedinstvenog izlaza.

uniq duplicate.txt

Izlaz:

Uočite da sustav ne prikazuje drugu pojavu retka Ovo je tekstualna datoteka . Također, spomenuta naredba ispisuje samo jedinstvene retke u datoteci i ne utječe na sadržaj izvorne tekstualne datoteke.

Broji ponovljene retke

Za ispis broja ponavljanih redaka u tekstualnoj datoteci upotrijebite -c zastavu sa zadanom naredbom.

uniq -c duplicate.txt

Izlaz:

Sustav prikazuje broj svakog retka koji postoji u tekstualnoj datoteci. Vidite da je linija Ovo je tekstualna datoteka pojavljuje dva puta u datoteci. Prema zadanim postavkama, naredba uniq razlikuje velika i mala slova.

Za ispis samo dupliciranih redaka iz tekstualne datoteke upotrijebite -D zastava. The -D stoji za Duplikat .

uniq -D duplicate.txt

Sustav će prikazati izlaz na sljedeći način.

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

Preskočite polja dok provjeravate ima li duplikata

Ako želite preskočiti određeni broj polja dok podudarate nizove, možete koristiti -f zastava s naredbom. The -f stoji za Polje .

Razmotrite sljedeću tekstualnu datoteku fields.txt .

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

Da biste preskočili prvo polje:

uniq -f 1 fields.txt

Izlaz:

192.168.0.1 TCP
Linux FS

Gore spomenuta naredba preskočila je prvo polje (IP adrese i nazivi OS -a) i uskladila drugu riječ (TCP i FS). Zatim je kao izlaz prikazao prvu pojavu svakog podudaranja.

Zanemari znakove pri usporedbi

Kao i preskakanje polja, možete preskočiti i likove. The -s flag omogućuje vam da odredite broj znakova koje ćete preskočiti dok se podudaraju duplicirani redovi. Ova značajka pomaže kada su podaci s kojima radite u obliku popisa na sljedeći način:

kako spojiti mac na roku
1. First
2. Second
3. Second
4. Second
5. Third
6. Third
7. Fourth
8. Fifth

Zanemarivanje prva dva znaka (numeracija popisa) u datoteci list.txt :

uniq -s 2 list.txt

Izlaz:

U gornjem ispisu prva dva znaka su zanemarena, a ostatak je uparen za jedinstvene retke.

Provjerite prvi N broj znakova za duplikate

The -u flag vam omogućuje da provjerite samo određeni broj znakova radi duplikata. Na primjer:

uniq -w 2 duplicate.txt

Gore spomenuta naredba podudarat će se samo s prva dva znaka i ispisat će jedinstvene retke ako ih ima.

Izlaz:

Uklonite osjetljivost velikih i malih slova

Kao što je gore spomenuto, uniq razlikuje velika i mala slova dok podudara retke u datoteci. Da biste zanemarili velika i mala slova, upotrijebite -i opciju s naredbom.

uniq -i duplicate.txt

Vidjet ćete sljedeći izlaz.

Primijetite u gornjem ispisu, uniq nije prikazao retke UČINITE OVO i Ovo je tekstualna datoteka .

Pošaljite izlaz u datoteku

Da biste poslali izlaz naredbe uniq u datoteku, možete koristiti Preusmjeravanje izlaza ( > ) karakter kako slijedi:

uniq -i duplicate.txt > otherfile.txt

Dok šalje izlaz u tekstualnu datoteku, sustav ne prikazuje izlaz naredbe. Sadržaj nove datoteke možete provjeriti pomoću mačka naredba.

cat otherfile.txt

Možete koristiti i druge načine poslati izlaz naredbenog retka u datoteku u Linuxu .

Analiza dupliciranih podataka s uniq

Većinu vremena dok upravljate Linux poslužiteljima radit ćete na terminalu ili uređivati ​​tekstualne datoteke. Stoga znanje o uklanjanju suvišnih kopija redaka u tekstualnoj datoteci može biti velika prednost vašem skupu vještina Linuxa.

Rad s tekstualnim datotekama može biti frustrirajući ako ne znate filtrirati i sortirati tekst u datoteci. Kako bi vam olakšao rad, Linux ima nekoliko naredbi za uređivanje teksta, npr sed i awk koji vam omogućuju učinkovit rad s tekstualnim datotekama i izlazima iz naredbenog retka.

Udio Udio Cvrkut E -pošta Ovih 10 primjera sed učinit će vas snažnim korisnikom Linuxa

Želite li postati napredni korisnik Linuxa? Uhvatiti se u koštac sa sedom će vam pomoći. Učite iz ovih 10 primjera sed.

Pročitajte Dalje
Povezane teme
  • Linux
  • Linux
O autoru Deepesh Sharma(79 objavljenih članaka)

Deepesh je mlađi urednik za Linux u MUO -u. On piše informativne vodiče o Linuxu s ciljem pružiti blaženo iskustvo svim pridošlicama. Nisam siguran u filmove, ali ako želite razgovarati o tehnologiji, on je vaš momak. U slobodno vrijeme možete ga pronaći kako čita knjige, sluša različite glazbene žanrove ili svira gitaru.

Više od Deepesh Sharma

Pretplatite se na naše obavijesti

Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e -knjige i ekskluzivne ponude!

Kliknite ovdje za pretplatu