Kaip išskirti žodį su grep
Turinys:
Komandinės eilutės įrankis grep yra nepaprastai naudingas ieškant teksto duomenų eilučių ir fragmentų, atitinkančių apibrėžtą eilutę, simbolį, žodį ar reguliarųjį posakį. Nors dažniausiai grep naudojamas duomenims rūšiuoti pagal sintaksės atitiktis, ką daryti, jei norite neįtraukti žodį ar eilutę su grep? Eilučių atitikmenų neįtraukimas naudojant grep yra taip pat naudingas, kaip grep atitikmenų paieška ir spausdinimas, todėl pakalbėkime apie tai, kaip išskirti eilutės atitikmenis ir neįtraukti žodžius naudojant grep.
Akivaizdu, kad norėsite turėti šiek tiek komandinės eilutės patirties ir dirbti su grep, kad tai būtų naudinga. Jei norite sekti, galite atidaryti terminalo programą ir išbandyti patys. Kadangi grep yra OS agnostinė priemonė, galite naudoti pašalinimo triuką „Mac OS“, „Linux“, „Unix“ ar bet kurioje kitoje, kuri naudoja grep, atveju.
Kaip išskirti vieną žodį su grep
Paprasčiausias būdas išskirti eilutes su eilutės arba sintaksės atitiktimi yra naudoti grep ir vėliavėlę -v.
Pavyzdžiui, mes naudojame cat spausdindami failą komandinėje eilutėje, bet norime neįtraukti visų eilučių, kuriose yra terminas „ThisWord“, tada sintaksė atrodytų taip:
katės pavyzdys.txt | grep -v ThisWord"
Išvestis bus pavyzdys.txt teksto failas, bet neįtraukiama jokia eilutė, kurioje yra eilutė, atitinkanti "ThisWord".
Taip pat galite naudoti grep tiesiogiai failuose ir neįtraukti eilučių atitikčių pagal žodžius ar sintaksę, pvz.:
"grep -v ThisWord>"
Naudokite tai, kas geriausiai tinka jūsų konkrečiai darbo eigai.
Kaip išskirti kelias eilutes ar žodžius naudojant grep
Dabar, kai žinote, kaip išskirti vieno žodžio atitikmenis, kitas akivaizdus klausimas yra apie kelių žodžių išskyrimą naudojant grep. Tai taip pat paprasta, ir yra keletas skirtingų būdų, kaip tai padaryti naudojant vėliavėlę -v ir -e.
Pirmiausia paimkite anksčiau pateiktą pavyzdį, kaip naudoti cat faile, nukreiptame į grep, ir neįtraukite eilučių, atitinkančių du žodžius; „Word1“ ir „Word2“, tai atrodytų taip:
"katės pavyzdys.txt | grep -v -e Word1 -e Word2"
Bet kokios eilutės, kuriose yra „Word1“ arba „Word2“, bus pašalintos iš spausdintų rezultatų.
Taip pat galite naudoti grep tiesiogiai failuose, kaip ir anksčiau:
"grep -v -e Word1 -e Word2 example.txt"
Kitas būdas yra atskirti, ką išskirti naudojant grep, naudojant vamzdelį, kad atskirtumėte kiekvieną atitikmenį, pvz.:
grep -Ev word1|word2 example.txt"
Jei išbandysite kurią nors iš šių parinkčių teksto failo pavyzdyje, pamatysite, kad išvestis yra identiška, nepaisant jūsų pasirinkto požiūrio, išskyrus eilutes, kuriose yra tikslinių frazių, sintaksės, žodžių arba teksto atitiktis.
Puiku, parodykite naudingą duomenų išskyrimo naudojant grep pavyzdį!
Praktinis pavyzdys, kuris gali būti naudingas patyrusiems „Mac“ naudotojams, galime naudoti grep išskyrimą, kai spausdiname ir pateikiame užklausas komandų eilutės istorijoje, kad surastume anksčiau vykdytas komandas ir rastume numatytųjų atitikčių, bet neįtraukdami kai kurių pasirinktų numatytųjų eilučių iš išvestis.
Šiame pavyzdyje išspausdinsime numatytųjų eilučių atitikčių komandų istoriją, bet neįtrauksime jokių atitikmenų, susijusių su iTunes, kaip apibrėžta „com.apple.itunes“:
"history |grep defaults rašyti |grep -v -e com.apple.itunes"
Taigi, jei sekate, bus pranešta apie visus istorinius komandos „numatytųjų rašyti“ vykdymus, bet neįtraukiant nieko, kas buvo susiję su „iTunes“ programa. Puiku ar ne?
Jei turite kokių nors ypač patogių būdų, kaip išskirti atitikmenis su grep, pasidalykite jais su mumis toliau pateiktuose komentaruose! Ir jei jums patiko šis straipsnis, beveik neabejotinai norėtumėte naršyti po daugybę komandų eilutės straipsnių, kuriuose yra daug daugiau, ką sužinoti!