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.
Spausdinti tik pakartotines eilutes
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“ vartotojuNorite tapti „Linux“ galios vartotoju? Padėti susitaikyti su sed padės. Pasimokykite iš šių 10 pavyzdžių.
Skaityti toliau Susijusios temos- Linux
- Linux
„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