Sanan sulkeminen pois grepillä
Sisällysluettelo:
- Yksittäisen sanan sulkeminen pois grepillä
- Useiden merkkijonojen tai sanojen sulkeminen pois grepillä
Grep-komentorivityökalu on erittäin hyödyllinen etsittäessä tekstitiedoista rivejä ja katkelmia, jotka vastaavat määritettyä merkkijonoa, merkkiä, sanaa tai säännöllistä lauseketta. Vaikka useimmat grep-käytöt on tarkoitettu tietojen lajitteluun syntaksiosumien perusteella, entä jos haluat jättää sanan tai merkkijonon sen sijaan pois grepillä? Riviosumien poissulkeminen grepillä on yhtä hyödyllistä kuin osumien etsiminen ja tulostaminen grepissä, joten katsotaanpa, kuinka merkkijonoosumat ja sanat voidaan sulkea pois grepillä.
Ilmeisesti haluat saada jonkin verran komentorivikokemusta ja altistumista grepille, jotta tämä on hyödyllistä. Jos haluat seurata mukana, voit avata Terminal-sovelluksen ja kokeilla sitä itse. Koska grep on käyttöjärjestelmän agnostinen apuohjelma, voit käyttää poissulkemistemppua Mac OS:ssä, Linuxissa, unixissa tai missä tahansa muussa, joka käyttää grepiä.
Yksittäisen sanan sulkeminen pois grepillä
Yksinkertaisin tapa sulkea pois rivit, joissa on merkkijono- tai syntaksiaosuma, on käyttää grepiä ja -v-lippua.
Ole esimerkiksi, että käytämme cat tulostamaan tiedostoa komentorivillä, mutta haluamme sulkea pois kaikki rivit, jotka sisältävät termin "ThisWord", jolloin syntaksi näyttäisi seuraav alta:
kissa esimerkki.txt | grep -v ThisWord"
Tuloste on esimerkki.txt-tekstitiedosto, mutta ei riviä, joka sisältää merkkijonovastaavuuden sanalla "ThisWord".
Voit myös käyttää grepiä suoraan tiedostoissa ja sulkea pois sanojen tai syntaksin perusteella suoritetut riviosumat, esimerkiksi:
"grep -v ThisWord>"
Käytä sitä, mikä toimii parhaiten tietyssä työnkulussasi.
Useiden merkkijonojen tai sanojen sulkeminen pois grepillä
Nyt kun tiedät kuinka sulkea pois yhden sanan osumat, seuraava ilmeinen kysymys koskee useiden sanojen poissulkemista grepillä. Se on yhtä yksinkertaista, ja on olemassa muutamia eri tapoja tehdä tämä käyttämällä -v- ja -e-lippua.
Otetaan ensin yllä oleva esimerkki cat:n käytöstä grep-tiedostossa ja jätetään pois kaikki rivit, jotka vastaavat kahta sanaa. "Word1" ja "Word2", tämä näyttäisi tältä:
"kissa esimerkki.txt | grep -v -e Word1 -e Word2"
Kaikki rivit, jotka sisältävät sanan "Word1" tai "Word2", jätetään pois tulostetuista tuloksista.
Voit myös käyttää grepiä suoraan tiedostoissa aivan kuten ennenkin:
"grep -v -e Word1 -e Word2 esimerkki.txt"
Toinen tapa on erottaa pois jätettävät kohdat grepillä käyttämällä putkea erottamaan jokainen ottelu, kuten näin:
grep -Ev sana1|sana2 esimerkki.txt"
Jos testaat jotakin näistä vaihtoehdoista esimerkkitekstitiedostossa, huomaat, että tulos on identtinen valitsemastasi lähestymistavasta riippumatta. Jokainen ei sisällä rivejä, jotka sisältävät kohdistettuja lauseita, syntaksia, sanoja tai tekstiosuma.
Hienoa, näytä minulle hyödyllinen esimerkki tietojen poissulkemisesta grepillä!
Käytännön esimerkki, josta kokeneille Mac-käyttäjille voi olla hyötyä, voimme käyttää grep-poissulkemista tulostettaessa ja kyselyissä komentorivihistoriaa, jotta löydettäisiin aiemmin suoritettuja komentoja oletusvastaavuuksien löytämiseksi, mutta jätetään pois joitakin valittuja oletusmerkkijonoja lähtö.
Tässä esimerkissä tulostamme komentohistorian oletusmerkkijonovastaavuuksille, mutta suljemme pois kaikki vastaavat, jotka liittyvät iTunesiin "com.apple.itunes"-määritteen mukaisesti:
"history |grep-oletukset kirjoittaa |grep -v -e com.apple.itunes"
Joten, jos olet seurannut asiaa, tämä raportoi kaikki "oletusarvojen kirjoitus" -komennon historialliset suoritukset, mutta sulkee pois kaikki iTunes-sovellukseen liittyvät asiat. Hienoa vai?
Jos sinulla on erityisen käteviä käyttötapoja osumien poissulkemiseen grepillä, jaa ne kanssamme alla olevissa kommenteissa! Ja jos pidit tästä artikkelista, haluaisit melkein varmasti selata monia komentoriviartikkeleita täällä, joissa on paljon muutakin opittavaa!