Kaip rasti pasikartojančius duomenis „Linux“ teksto faile naudojant „uniq“

Kaip rasti pasikartojančius duomenis „Linux“ teksto faile naudojant „uniq“

Ar kada nors susidūrėte su teksto failais su pasikartojančiomis eilutėmis ir pasikartojančiais žodžiais? Galbūt reguliariai dirbate su komandų išvestimi ir norite filtruoti skirtingas eilutes. Kalbant apie teksto failus ir nereikalingų duomenų pašalinimą „Linux“, geriausia yra „uniq“ komanda.





Šiame straipsnyje mes išsamiai aptarsime komandą uniq kartu su išsamiu vadovu, kaip naudoti komandą, kad pašalintumėte pasikartojančias eilutes iš teksto failo.





Kas yra „uniq“ komanda?

„Uniq“ komanda „Linux“ naudojama vienodoms eilutėms rodyti teksto faile. Ši komanda gali būti naudinga, jei norite pašalinti pasikartojančius žodžius ar eilutes iš teksto failo. Kadangi komanda „uniq“ atitinka gretimas eilutes, kai reikia rasti nereikalingas kopijas, ji veikia tik su surūšiuotais teksto failais.





Laimei, jūs galite vamzdį rūšiuoti komandą su „uniq“, kad sutvarkytumėte tekstinį failą taip, kad jis būtų suderinamas su komanda. „Uniq“ komanda gali ne tik rodyti pasikartojančias eilutes, bet ir suskaičiuoti pasikartojančių eilučių atsiradimą teksto faile.

Kaip naudoti komandą uniq

„Uniq“ galite naudoti įvairias parinktis ir žymes. Kai kurie iš jų yra paprasti ir atlieka paprastas operacijas, pvz., Spausdina pakartotines eilutes, o kiti yra skirti pažengusiems vartotojams, kurie dažnai dirba su teksto failais „Linux“.



Pagrindinė sintaksė

Pagrindinė „uniq“ komandos sintaksė yra tokia:

uniq option input output

... kur variantas yra vėliava, naudojama norint iškviesti konkrečius komandos metodus, įvesties yra tekstinis failas, skirtas apdorojimui, ir produkcija yra failo, kuriame bus saugoma išvestis, kelias.





The produkcija argumentas yra neprivalomas ir gali būti praleistas. Jei vartotojas nenurodo įvesties failo, uniq ima duomenis iš standartinės išvesties kaip įvestį. Tai leidžia vartotojui prisijungti prie „Uniq“ kitos „Linux“ komandos .

Teksto failo pavyzdys

Mes naudosime tekstinį failą duplicate.txt kaip komandos įvestis.





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.

Atminkite, kad mes jau surūšiavome šį teksto failą naudodami rūšiuoti komandą. Jei dirbate su kitu teksto failu, galite jį surūšiuoti naudodami šią komandą:

sort filename.txt > sorted.txt

Pašalinkite pasikartojančias eilutes

Paprasčiausias „uniq“ naudojimas yra pašalinti pasikartojančias eilutes iš įvesties ir spausdinti unikalią išvestį.

uniq duplicate.txt

Išėjimas:

Atkreipkite dėmesį, kad sistema nerodo antro eilutės įvykio Tai tekstinis failas . Be to, pirmiau minėta komanda spausdina tik unikalias failo eilutes ir neturi įtakos pradinio teksto failo turiniui.

Skaičiuokite kartojamas eilutes

Norėdami išvesti pakartotinių teksto failo eilučių skaičių, naudokite -c vėliava su numatyta komanda.

uniq -c duplicate.txt

Išėjimas:

Sistema rodo kiekvienos eilutės, esančios teksto faile, skaičių. Jūs galite pamatyti, kad linija Tai tekstinis failas faile įvyksta du kartus. Pagal numatytuosius nustatymus uniq komanda skiria didžiąsias ir mažąsias raides.

Norėdami spausdinti tik pasikartojančias eilutes iš teksto failo, naudokite -D vėliava. The -D reiškia Dublikatas .

uniq -D duplicate.txt

Sistema rodys išvestį taip.

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

Praleiskite laukus tikrindami dublikatus

Jei norite praleisti tam tikrą skaičių laukų, suderindami eilutes, galite naudoti -f vėliava su komanda. The -f reiškia Laukas .

Apsvarstykite šį tekstinį failą laukus.txt .

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

Norėdami praleisti pirmąjį lauką:

uniq -f 1 fields.txt

Išėjimas:

192.168.0.1 TCP
Linux FS

Pirmiau minėta komanda praleido pirmąjį lauką (IP adresus ir OS pavadinimus) ir atitiko antrąjį žodį (TCP ir FS). Tada kaip rezultatas buvo rodomas pirmasis kiekvienos rungtynės įvykis.

Lygindami nepaisykite simbolių

Kaip ir praleisti laukus, galite praleisti ir simbolius. The -s vėliava leidžia nurodyti praleidžiamų simbolių skaičių derinant pasikartojančias eilutes. Ši funkcija padeda, kai duomenys, su kuriais dirbate, yra tokio sąrašo forma:

kaip prijungti kietąjį diską prie nešiojamojo kompiuterio
1. First
2. Second
3. Second
4. Second
5. Third
6. Third
7. Fourth
8. Fifth

Norėdami ignoruoti pirmuosius du simbolius (sąrašo numeraciją) faile list.txt :

uniq -s 2 list.txt

Išėjimas:

Aukščiau pateiktame produkte pirmieji du simboliai buvo ignoruojami, o likusieji buvo suderinti su unikaliomis eilutėmis.

Patikrinkite pirmojo N simbolių skaičių, ar nėra dublikatų

The vėliava leidžia patikrinti, ar nėra dublikatų tik fiksuoto skaičiaus simbolių. Pavyzdžiui:

uniq -w 2 duplicate.txt

Pirmiau minėta komanda atitiks tik pirmuosius du simbolius ir atspausdins unikalias eilutes, jei tokių yra.

Išėjimas:

Pašalinkite didžiųjų ir mažųjų raidžių jautrumą

Kaip minėta aukščiau, „uniq“ skiria didžiąsias ir mažąsias raides, o failo eilutės atitinka. Jei norite nepaisyti didžiųjų ir mažųjų raidžių, naudokite -i parinktis su komanda.

uniq -i duplicate.txt

Pamatysite šią išvestį.

Atkreipkite dėmesį į aukščiau pateiktą išvestį, „uniq“ nerodė eilučių PATVERK ŠĮ ir Tai yra teksto failas .

Siųsti išvestį į failą

Norėdami išsiųsti „uniq“ komandos išvestį į failą, galite naudoti Išvesties peradresavimas ( > ) simbolis taip:

uniq -i duplicate.txt > otherfile.txt

Siunčiant išvestį į teksto failą, sistema nerodo komandos išvesties. Naujo failo turinį galite patikrinti naudodami katė komandą.

cat otherfile.txt

Taip pat galite naudoti kitus būdus siųsti komandinės eilutės išvestį į failą „Linux“ .

Pasikartojančių duomenų analizė naudojant „uniq“

Dažniausiai valdydami „Linux“ serverius dirbsite prie terminalo arba redaguosite teksto failus. Todėl žinojimas, kaip pašalinti nereikalingas teksto failo eilučių kopijas, gali būti puikus jūsų „Linux“ įgūdžių rinkinio privalumas.

Darbas su teksto failais gali būti varginantis, jei nežinote, kaip filtruoti ir rūšiuoti failo tekstą. Kad jūsų darbas būtų lengvesnis, „Linux“ turi keletą teksto redagavimo komandų, tokių kaip sed ir awk kurie leidžia efektyviai dirbti su teksto failais ir komandinės eilutės išvestimis.

Dalintis Dalintis „Tweet“ Paštu Šie 10 „Sed“ pavyzdžių padarys jus „Linux Power“ vartotoju

Norite tapti „Linux“ galios vartotoju? Padėti susitaikyti su sed padės. Pasimokykite iš šių 10 pavyzdžių.

Skaityti toliau
Susijusios temos
  • Linux
  • Linux
Apie autorių Deepesh Sharma(Paskelbti 79 straipsniai)

„Deepesh“ yra „MUO“ jaunesnysis „Linux“ redaktorius. Jis rašo informacinius vadovus apie „Linux“, siekdamas suteikti palaimingos patirties visiems naujokams. Nesate tikri dėl filmų, bet jei norite kalbėti apie technologijas, jis yra jūsų vaikinas. Laisvalaikiu galite jį skaityti knygas, klausytis skirtingų muzikos žanrų ar groti gitara.

Daugiau iš „Deepesh Sharma“

Prenumeruokite mūsų naujienlaiškį

Prisijunkite prie mūsų naujienlaiškio, kad gautumėte techninių patarimų, apžvalgų, nemokamų el. Knygų ir išskirtinių pasiūlymų!

Norėdami užsiprenumeruoti, spustelėkite čia