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.
Tulosta vain toistuvat rivit
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änHaluatko tulla Linuxin tehonkäyttäjäksi? Sediin tarttuminen auttaa. Opi näistä 10 esimerkistä.
Lue seuraava Liittyvät aiheet- Linux
- Linux
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 Sharmastatilaa uutiskirjeemme
Liity uutiskirjeeseemme saadaksesi teknisiä vinkkejä, arvosteluja, ilmaisia e -kirjoja ja ainutlaatuisia tarjouksia!
Klikkaa tästä tilataksesi