Kā atrast dublētus datus Linux teksta failā ar uniq

Kā atrast dublētus datus Linux teksta failā ar uniq

Vai esat kādreiz saskārušies ar teksta failiem ar atkārtotām rindām un dublētiem vārdiem? Varbūt jūs regulāri strādājat ar komandu izvadi un vēlaties filtrēt tās atsevišķām virknēm. Runājot par teksta failiem un lieku datu noņemšanu operētājsistēmā Linux, uniq komanda ir labākā izvēle.





Šajā rakstā mēs padziļināti apspriedīsim komandu uniq, kā arī detalizētu rokasgrāmatu par to, kā izmantot komandu, lai no teksta faila noņemtu dublētas rindas.





Kas ir uniq komanda?

Komanda uniq Linux tiek izmantota, lai teksta failā parādītu identiskas rindas. Šī komanda var būt noderīga, ja vēlaties no teksta faila noņemt dublētus vārdus vai virknes. Tā kā komanda uniq atbilst blakus esošajām rindām, lai atrastu liekas kopijas, tā darbojas tikai ar sakārtotiem teksta failiem.





Par laimi, jūs varat cauruļvadu kārtot komandu ar uniq, lai sakārtotu teksta failu tādā veidā, kas ir saderīgs ar komandu. Komanda uniq var ne tikai parādīt atkārtotas rindas, bet arī saskaitīt atkārtotu rindiņu parādīšanos teksta failā.

Kā lietot komandu uniq

Ir dažādas iespējas un karodziņi, kurus varat izmantot kopā ar uniq. Daži no tiem ir pamata un veic vienkāršas darbības, piemēram, drukā atkārtotas rindas, bet citi ir paredzēti pieredzējušiem lietotājiem, kuri bieži strādā ar teksta failiem operētājsistēmā Linux.



Pamata sintakse

Komandas uniq pamata sintakse ir šāda:

uniq option input output

... kur iespēja ir karogs, ko izmanto, lai izsauktu īpašas komandas metodes, ievadi ir teksta fails apstrādei, un izvade ir faila ceļš, kurā tiks saglabāta izeja.





The izvade arguments nav obligāts, un to var izlaist. Ja lietotājs nenorāda ievades failu, uniq ņem datus no standarta izejas kā ievadi. Tas ļauj lietotājam izveidot savienojumu ar uniq citas Linux komandas .

Teksta faila piemērs

Mēs izmantosim teksta failu duplicate.txt kā komandas ievadi.





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.

Ņemiet vērā, ka mēs jau esam sakārtojuši šo teksta failu, izmantojot kārtot komandu. Ja strādājat ar kādu citu teksta failu, varat to kārtot, izmantojot šādu komandu:

sort filename.txt > sorted.txt

Noņemt dublētas rindas

Visvienkāršākais uniq lietojums ir noņemt atkārtotas virknes no ievades un izdrukāt unikālu izvadi.

uniq duplicate.txt

Izeja:

Ņemiet vērā, ka sistēma neparāda otro rindas parādīšanos Šis ir teksta fails . Turklāt iepriekš minētā komanda drukā tikai faila unikālās rindas un neietekmē sākotnējā teksta faila saturu.

Saskaitīt atkārtotas rindas

Lai izvadītu atkārtotu rindu skaitu teksta failā, izmantojiet -c karodziņš ar noklusējuma komandu.

uniq -c duplicate.txt

Izeja:

Sistēma parāda katras teksta failā esošās rindas skaitu. Jūs varat redzēt, ka līnija Šis ir teksta fails failā notiek divas reizes. Pēc noklusējuma komanda uniq ir reģistrjutīga.

Lai drukātu tikai teksta faila dublikātus, izmantojiet -D karogs. The -D apzīmē Dublikāts .

uniq -D duplicate.txt

Sistēma parādīs izvadi šādi.

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

Izlaidiet laukus, meklējot dublikātus

Ja vēlaties izlaist noteiktu lauku skaitu, vienlaikus saskaņojot virknes, varat izmantot -f karogs ar komandu. The -f apzīmē Lauks .

Apsveriet šādu teksta failu lauki.txt .

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

Lai izlaistu pirmo lauku:

uniq -f 1 fields.txt

Izeja:

192.168.0.1 TCP
Linux FS

Iepriekš minētā komanda izlaida pirmo lauku (IP adreses un OS nosaukumus) un atbilst otrajam vārdam (TCP un FS). Pēc tam kā rezultātu tika parādīts katras spēles pirmais gadījums.

Salīdzinot, ignorējiet rakstzīmes

Tāpat kā izlaižot laukus, varat izlaist arī rakstzīmes. The -s karodziņš ļauj norādīt izlaižamo rakstzīmju skaitu, vienlaikus saskaņojot atkārtotas rindas. Šī funkcija palīdz, ja dati, ar kuriem strādājat, ir šādi saraksta veidā:

īsinājumtaustiņi miega režīmā Windows 10
1. First
2. Second
3. Second
4. Second
5. Third
6. Third
7. Fourth
8. Fifth

Lai ignorētu pirmās divas rakstzīmes (saraksta numerācijas) failā list.txt :

uniq -s 2 list.txt

Izeja:

Iepriekš minētajā iznākumā pirmās divas rakstzīmes tika ignorētas, un pārējās tika saskaņotas ar unikālām līnijām.

Pārbaudiet, vai pirmajā N rakstzīmju skaitā nav dublikātu

The -iekšā karodziņš ļauj pārbaudīt tikai noteiktu rakstzīmju skaitu, vai nav dublikātu. Piemēram:

uniq -w 2 duplicate.txt

Iepriekš minētā komanda atbilst tikai pirmajām divām rakstzīmēm un izdrukās unikālas līnijas, ja tādas ir.

Izeja:

Noņemt reģistrjutību

Kā minēts iepriekš, uniq ir reģistrjutīgs, vienlaikus saskaņojot rindiņas failā. Lai ignorētu rakstzīmju reģistru, izmantojiet -i opcija ar komandu.

uniq -i duplicate.txt

Jūs redzēsit šādu izvadi.

Ievērojiet iepriekšējā izvadē, uniq neparādīja līnijas PIEŠĶIRT ŠO un TAS IR TEKSTA DATIS .

Nosūtīt izvadi uz failu

Lai nosūtītu komandas uniq izvadi uz failu, varat izmantot Izejas novirzīšana ( > ) raksturs šādi:

uniq -i duplicate.txt > otherfile.txt

Sūtot izvadi uz teksta failu, sistēma nerāda komandas izvadi. Jūs varat pārbaudīt jaunā faila saturu, izmantojot kaķis komandu.

cat otherfile.txt

Varat arī izmantot citus veidus nosūtīt komandrindas izvadi uz failu Linux .

Dublētu datu analīze ar uniq

Lielāko daļu laika, pārvaldot Linux serverus, jūs strādāsit pie termināļa vai rediģēsit teksta failus. Tāpēc, zinot, kā teksta failā noņemt liekās rindu kopijas, tas var būt liels ieguvums jūsu Linux prasmju kopumam.

Darbs ar teksta failiem var būt nomākts, ja nezināt, kā filtrēt un kārtot tekstu failā. Lai atvieglotu jūsu darbu, Linux ir vairākas teksta rediģēšanas komandas, piemēram, sed un awk kas ļauj efektīvi strādāt ar teksta failiem un komandrindas izvadiem.

Kopīgot Kopīgot Čivināt E -pasts Šie 10 Sed piemēri padarīs jūs par Linux enerģijas lietotāju

Vai vēlaties kļūt par Linux enerģijas lietotāju? Palīdzēs tikt galā ar sed. Mācieties no šiem 10 sed piemēriem.

Lasīt Tālāk
Saistītās tēmas
  • Linux
  • Linux
Par autoru Deepesh Sharma(79 raksti publicēti)

Deepesh ir MUO Linux jaunākais redaktors. Viņš raksta informatīvus ceļvežus par Linux, lai sniegtu svētlaimīgu pieredzi visiem jaunpienācējiem. Neesat pārliecināts par filmām, bet, ja vēlaties runāt par tehnoloģijām, viņš ir jūsu puisis. Brīvajā laikā jūs varat atrast viņu lasot grāmatas, klausoties dažādus mūzikas žanrus vai spēlējot ģitāru.

Vairāk no Deepesh Sharma

Abonējiet mūsu biļetenu

Pievienojieties mūsu informatīvajam izdevumam, lai iegūtu tehniskus padomus, pārskatus, bezmaksas e -grāmatas un ekskluzīvus piedāvājumus!

Noklikšķiniet šeit, lai abonētu