Kuinka löytää päällekkäisiä tietoja Linux -tekstitiedostosta, jossa on uniq

Kuinka löytää päällekkäisiä tietoja Linux -tekstitiedostosta, jossa on uniq

Oletko koskaan törmännyt tekstitiedostoihin, joissa on toistuvia rivejä ja päällekkäisiä sanoja? Ehkä työskentelet säännöllisesti komentojen kanssa ja haluat suodattaa ne eri merkkijonoille. Mitä tulee tekstitiedostoihin ja tarpeettomien tietojen poistamiseen Linuxissa, uniq -komento on paras vaihtoehto.





Tässä artikkelissa keskustelemme uniq-komennosta perusteellisesti sekä yksityiskohtaisen oppaan siitä, miten komentoa käytetään päällekkäisten rivien poistamiseen tekstitiedostosta.





Mikä on uniq -komento?

Uniq -komentoa Linuxissa käytetään näyttämään identtiset rivit tekstitiedostossa. Tämä komento voi olla hyödyllinen, jos haluat poistaa päällekkäiset sanat tai merkkijonot tekstitiedostosta. Koska uniq -komento vastaa vierekkäisiä rivejä tarpeettomien kopioiden löytämiseksi, se toimii vain lajiteltujen tekstitiedostojen kanssa.





Onneksi voit putkea järjestellä komennolla uniq järjestääksesi tekstitiedoston komennon kanssa yhteensopivalla tavalla. Toistuvien rivien näyttämisen lisäksi uniq -komento voi myös laskea päällekkäisten rivien esiintymisen tekstitiedostossa.

Uniq -komennon käyttäminen

Uniqin kanssa voi käyttää erilaisia ​​vaihtoehtoja ja lippuja. Jotkut niistä ovat perustoimintoja ja suorittavat yksinkertaisia ​​toimintoja, kuten tulostavat toistuvia rivejä, kun taas toiset ovat kokeneille käyttäjille, jotka työskentelevät usein tekstitiedostojen kanssa Linuxissa.



Perussyntaksi

Uniq -komennon perussyntaksi on:

uniq option input output

...missä vaihtoehto on lippu, jota käytetään komennon tiettyjen menetelmien kutsumiseen, tulo on käsiteltävä tekstitiedosto ja lähtö on tiedoston polku, johon tulostus tallennetaan.





The lähtö argumentti on valinnainen ja sen voi ohittaa. Jos käyttäjä ei määritä syöttötiedostoa, uniq ottaa tulona vakiolähdön tiedot. Tämän avulla käyttäjä voi muodostaa yhteyden uniqiin muita Linux -komentoja .

Esimerkki tekstitiedostosta

Käytämme tekstitiedostoa duplicate.txt komennon tulona.





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.

Huomaa, että olemme jo lajitelleet tämän tekstitiedoston käyttämällä järjestellä komento. Jos työskentelet jonkin muun tekstitiedoston kanssa, voit lajitella sen seuraavan komennon avulla:

sort filename.txt > sorted.txt

Poista päällekkäiset rivit

Yksinkertaisin uniq -käyttö on poistaa toistuvat merkkijonot tulosta ja tulostaa ainutlaatuinen tulostus.

uniq duplicate.txt

Lähtö:

Huomaa, että järjestelmä ei näytä rivin toista esiintymää Tämä on tekstitiedosto . Edellä mainittu komento tulostaa myös vain tiedoston ainutlaatuiset rivit eikä vaikuta alkuperäisen tekstitiedoston sisältöön.

Laske toistuvat rivit

Jos haluat tulostaa tekstitiedoston toistuvien rivien määrän, käytä -c lippu oletuskomennolla.

uniq -c duplicate.txt

Lähtö:

Järjestelmä näyttää jokaisen tekstitiedostossa olevan rivin määrän. Näet sen viivan Tämä on tekstitiedosto esiintyy kaksi kertaa tiedostossa. Oletuksena uniq-komento erottaa isot ja pienet kirjaimet.

Jos haluat tulostaa vain päällekkäisiä rivejä tekstitiedostosta, käytä -D lippu. The -D tarkoittaa Monista .

uniq -D duplicate.txt

Järjestelmä näyttää lähdön seuraavasti.

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

Ohita kentät, kun etsit kaksoiskappaleita

Jos haluat ohittaa tietyn määrän kenttiä samaan aikaan merkkijonojen kanssa, voit käyttää -f lippu komennolla. The -f tarkoittaa Ala .

Harkitse seuraavaa tekstitiedostoa fields.txt .

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

Ensimmäisen kentän ohittaminen:

uniq -f 1 fields.txt

Lähtö:

192.168.0.1 TCP
Linux FS

Edellä mainittu komento ohitti ensimmäisen kentän (IP -osoitteet ja käyttöjärjestelmien nimet) ja vastasi toista sanaa (TCP ja FS). Sitten se näytti jokaisen ottelun ensimmäisen esiintymän tulostena.

Ohita merkit vertaillessasi

Kuten kenttien ohittaminen, voit ohittaa myös hahmoja. The -s -lipun avulla voit määrittää ohitettavien merkkien lukumäärän, kun rinnakkaiset rivit vastaavat. Tämä ominaisuus auttaa, kun käsittelemäsi tiedot ovat seuraavan luettelon muodossa:

kuinka tehdä palautuslevy Windows 8.1: lle
1. First
2. Second
3. Second
4. Second
5. Third
6. Third
7. Fourth
8. Fifth

Ohita tiedoston kaksi ensimmäistä merkkiä (luettelonumeroinnit) list.txt :

uniq -s 2 list.txt

Lähtö:

Yllä olevassa tulostuksessa kaksi ensimmäistä merkkiä jätettiin huomiotta ja loput vastaavat yksilöllisiä rivejä.

Tarkista kaksoismerkkien ensimmäinen N merkkimäärä

The -sisään -lipun avulla voit tarkistaa vain tietyn määrän merkkejä kaksoiskappaleiden varalta. Esimerkiksi:

uniq -w 2 duplicate.txt

Edellä mainittu komento vastaa vain kahta ensimmäistä merkkiä ja tulostaa mahdolliset ainutlaatuiset rivit.

Lähtö:

Poista kirjainkoko

Kuten edellä mainittiin, uniq erottaa kirjaimet ja vastaa tiedoston rivejä. Ohita merkkikirjain käyttämällä -i vaihtoehto komennolla.

uniq -i duplicate.txt

Näet seuraavan tuloksen.

Huomaa yllä olevasta tuotoksesta, uniq ei näyttänyt rivejä SAA TÄMÄ ja TÄMÄ ON TEKSTITIEDOSTO .

Lähetä lähtö tiedostoon

Voit lähettää uniq -komennon tuloksen tiedostoon käyttämällä Lähdön uudelleenohjaus ( > ) merkki seuraavasti:

uniq -i duplicate.txt > otherfile.txt

Lähetyksen aikana tekstitiedostoon järjestelmä ei näytä komennon tulosta. Voit tarkistaa uuden tiedoston sisällön käyttämällä kissa komento.

cat otherfile.txt

Voit käyttää myös muita tapoja lähettää komentorivin lähdön tiedostoon Linuxissa .

Päällekkäisten tietojen analysointi uniq: n avulla

Suurimman osan ajasta, kun hallitset Linux -palvelimia, työskentelet joko päätelaitteessa tai muokkaat tekstitiedostoja. Siksi tietämys poistaa tarpeettomat kopiot tekstitiedoston riveistä voi olla suuri etu Linux -taitojoukollesi.

Tekstitiedostojen käsittely voi olla turhauttavaa, jos et tiedä kuinka suodattaa ja lajitella tiedoston teksti. Työn helpottamiseksi Linuxilla on useita tekstinkäsittelykomentoja, kuten sed ja awk joiden avulla voit työskennellä tehokkaasti tekstitiedostojen ja komentorivilähtöjen kanssa.

Jaa Jaa Tweet Sähköposti Nämä 10 Sed -esimerkkiä tekevät sinusta Linux -tehokäyttäjän

Haluatko tulla Linuxin tehonkäyttäjäksi? Sediin tarttuminen auttaa. Opi näistä 10 esimerkistä.

Lue seuraava
Liittyvät aiheet
  • Linux
  • Linux
Kirjailijasta Deepesh Sharma(79 artikkelia julkaistu)

Deepesh on MUO: n nuorempi editori Linuxille. Hän kirjoittaa informaatio -oppaita Linuxissa ja pyrkii tarjoamaan autuaan kokemuksen kaikille uusille tulokkaille. Et ole varma elokuvista, mutta jos haluat puhua tekniikasta, hän on kaverisi. Vapaa -ajallaan löydät hänet lukemasta kirjoja, kuuntelemassa erilaisia ​​musiikkilajeja tai soittamassa kitaraa.

Lisää Deepesh Sharmasta

tilaa uutiskirjeemme

Liity uutiskirjeeseemme saadaksesi teknisiä vinkkejä, arvosteluja, ilmaisia ​​e -kirjoja ja ainutlaatuisia tarjouksia!

Klikkaa tästä tilataksesi