Linux komandas

Linux uniq komanda

Linux uniq komanda
Kas ir "unikāls"? Tas ir lielisks komandrindas rīks, kas ziņo vai izlaiž jebkuru teksta dublikātu dotajā ievadē. Tā ir daļa no GNU coreutils, un tā ir pieejama katrā UNIX / Linux sistēmā. Sāksim ar “uniq”!

Uniq lietošana

Lūk, kā izskatās “uniq” komandu bāzes struktūra.

unikāls

Piemēram, apskatīsim “dublikāta” saturu.txt ”. Protams, šī raksta vajadzībām tajā ir daudz teksta satura dublikātu.

kaķa dublikāts.txt | kārtot

Ir skaidri dublēts saturs, labi? Filtrēsim tos caur “uniq”.

kaķa dublikāts kārtot | unikāls

Rezultāts izskatās tik labi, tikai ar unikālajām vērtībām?

Tomēr, lai veiktu darbu, jums vienkārši nav jāizmanto cauruļvadu metode. “Uniq” var tieši strādāt arī ar failiem.

unikāls

Notiek satura dublikāta dzēšana

Jā, dublikāta satura dzēšana no ievades un tikai pirmā gadījuma saglabāšana ir noklusējuma “uniq” rīcība. Ņemiet vērā, ka šī dublikātu dzēšana notiek tikai tad, ja “uniq” atrod vienlaicīgi dublētus vienumus.

Apskatīsim šo piemēru. Esmu izveidojis vēl vienu “dublikātu1.txt ”fails, kas satur vienumu dublikātus. Tomēr tie nav blakus viens otram.

sikspārņu dublikāts.txt

Filtrējiet šo izvadi, izmantojot “uniq”.

kaķa dublikāts.txt | unikāls

Tur atrodas viss satura dublikāts! Tāpēc, ja strādājat ar kaut ko līdzīgu šim, ievadiet saturu “kārtot”, lai pārliecinātos, ka viss saturs ir sakārtots un dublikāti atrodas blakus viens otram.

kaķa dublikāts.txt | kārtot

Tagad “uniq” darīs savu darbu normāli.

kaķa dublikāts.txt | kārtot | unikāls

Atkārtojumu skaits

Ja vēlaties, varat pārbaudīt, cik reižu satura rinda tiek atkārtota. Vienkārši izmantojiet “-c” karodziņu ar “uniq”.

kaķa dublikāts.txt | kārtot | uniq -c

Piezīme: “uniq” regulāri veiks arī dublikātu dzēšanu.

Dublikātu līniju drukāšana

Lielākoties mēs gribam atbrīvoties no dublikātiem, vai ne? Šoreiz, kā vienkārši pārbaudīt, kas ir dublikāts?

Jā, arī “uniq” to spēj. Šajā gadījumā jums jāizmanto opcija “-D”. Lai iegūtu labāku, izsmalcinātāku rezultātu, es izmantošu “kārtot”.

kaķa dublikāts.txt | kārtot | uniq -D

WOW! Tas ir DAUDZ dublikātu! Tomēr visi dublikāti ir salikti kopā, tādējādi apgrūtinot pārvietošanos. Kā būtu, ja starpā pievienotu nelielu atstarpi?

uniq - visi atkārtoti =

Šeit ir pieejamas 3 dažādas metodes: neviena (noklusējuma vērtība), iepriekšēja un atsevišķa.

kaķa dublikāts.txt | kārtot | uniq - visi atkārtoti = atkarīgi

kaķa dublikāts.txt | kārtot | uniq - visi atkārtoti = atsevišķi

Tagad tas izskatās labāk.

Izlaižot unikalitātes pārbaudi

Daudzos gadījumos unikalitāte jāpārbauda citā līnijas daļā.

Sapratīsim to ar piemēru. Faila dublikātā1.txt, pieņemsim, ka dublēšanos nosaka otrā daļa. Kā jūs sakāt “uniq” to darīt? Parasti tas pārbauda pirmo lauku (pēc noklusējuma). Nu, arī mēs to varam izdarīt. Lai veiktu šo darbu, ir šis karodziņš “-f”.

uniq -f
kaķa dublikāts.txt | kārtot -k 2 | uniq -f 1

Ja jūs domājat ar karodziņu “kārtot”, sakiet “kārtot”, lai kārtotu, pamatojoties uz otro kolonnu.

Parādīt visas rindas, izņemot atsevišķus dublikātus

Saskaņā ar visiem iepriekš minētajiem piemēriem “uniq” saglabā tikai pirmo dublētā satura parādīšanos un pārējo noņem. Kā būtu ar kopēja satura noņemšanu vispār? Jā, izmantojot karodziņu “-u”, mēs varam piespiest “uniq” saglabāt tikai neatkārtojošās līnijas.

kaķa dublikāts.txt | kārtot

kaķa dublikāts.txt | kārtot | uniq -u

Hmm, pārāk daudz dublikātu tagad ir pazuduši ..

Izlaist sākotnējās rakstzīmes

Mēs apspriedām, kā pateikt “uniq” darīt savu darbu citās jomās, labi? Ir pienācis laiks sākt pārbaudi pēc vairākām sākotnējām rakstzīmēm. Šim nolūkam “-s” karogs kopā ar rakstzīmju skaitu liks “uniq” veikt darbu.

kaķa dublikāts.txt | kārtot -k 2 | uniq -s 2

Tas ir līdzīgs piemēram, kur “uniq” uzdevums bija veikt tikai otrajā laukā. Apskatīsim vēl vienu piemēru ar šo triku.

kaķa dublikāts.txt | kārtot | uniq -s 5

Pārbaudiet TIKAI sākotnējās rakstzīmes

Tāpat kā veids, kā mēs teicām “uniq” izlaist pirmās pāris rakstzīmes, ir iespējams arī pateikt, ka “uniq” vienkārši ierobežot pārbaudi pirmo pāris rakstzīmju robežās. Šim nolūkam ir īpašs karodziņš “-w”.

kaķa dublikāts.txt | kārtot | uniq -w 5

Šī komanda liek “uniq” veikt unikalitātes pārbaudi pirmajās 5 rakstzīmēs.

Apskatīsim vēl vienu šīs komandas piemēru.

kaķa dublikāts.txt | kārtot | uniq -w 5

Tas iznīcina visus pārējos ierakstu “dublikāti” gadījumus, jo tas veica “dupli” daļas unikalitātes pārbaudi.

Gadījuma nejutīgums

Pārbaudot unikalitāti, “uniq” pārbauda arī rakstzīmju reģistru. Dažās situācijās reģistrjutībai nav nozīmes, tāpēc mēs varam izmantot karodziņu “-i”, lai “uniq” reģistru padarītu nejutīgu.

Šeit es jums iepazīstinu ar demonstrācijas failu.

Daži patiešām gudri dublējas ar lielo un mazo burtu sajaukumu, labi? Ir pienācis laiks izmantot “uniq” spēku, lai iztīrītu putru!

kaķa dublikāts.txt | kārtot | uniq -i

Vēlme ir piešķirta!

NULL izbeigta izeja

Noklusējuma “uniq” rīcība ir izejas beigšana ar jaunu rindu. Tomēr izvadi var pārtraukt arī ar NULL. Tas ir diezgan noderīgi, ja jūs to izmantojat skriptu veidošanā. Šeit darbu veic karodziņš “-z”.

kaķa dublikāts.txt | kārtot | uniq -z

Apvienojot vairākus karodziņus

Mēs uzzinājām vairākus “uniq” karodziņus, labi? Kā par to apvienošanu kopā?

Piemēram, es apvienoju gadījuma nejutīgumu un atkārtojumu skaitu.

Ja jūs kādreiz plānojat sajaukt vairākus karodziņus, vispirms pārliecinieties, ka tie darbojas pareizi kopā. Dažreiz lietas vienkārši nedarbojas tā, kā vajadzētu.

Pēdējās domas

“Uniq” ir diezgan unikāls rīks, ko piedāvā Linux. Ar tik daudzām jaudīgām funkcijām tas var būt noderīgs daudzos veidos. Visu karodziņu sarakstu un to skaidrojumus meklējiet “uniq” cilvēkā un informācijas lapās.

cilvēks unikāls

info unikāls

Izbaudi!

Labākie Linux spēļu draiveri 2021. gadā
Linux operētājsistēma ir gājusi tālu no sākotnējā, vienkāršā uz serveriem balstītā izskata. Šī operētājsistēma pēdējos gados ir ārkārtīgi uzlabojusies...
Kā tvert un straumēt spēļu sesiju operētājsistēmā Linux
Agrāk spēļu spēlēšana tika uzskatīta tikai par hobiju, taču laika gaitā spēļu industrija piedzīvoja milzīgu tehnoloģiju un spēlētāju skaita pieaugumu....
Labākās spēles, ko spēlēt ar rokas izsekošanu
Oculus Quest nesen iepazīstināja ar lielisku ideju par rokas izsekošanu bez kontrolieriem. Ar arvien lielāku spēļu un aktivitāšu skaitu, kas atbalsta ...