Ako vylúčiť slovo pomocou grep
Obsah:
Nástroj príkazového riadka grep je veľmi užitočný na vyhľadávanie riadkov a úryvkov v textových údajoch, ktoré zodpovedajú definovanému reťazcu, znaku, slovu alebo regulárnemu výrazu. Zatiaľ čo väčšina použití grep je na triedenie údajov pre zhody syntaxe, čo ak chcete namiesto toho vylúčiť slovo alebo reťazec pomocou grep? Vylúčenie zhôd riadkov s grep je rovnako užitočné ako hľadanie a tlač zhôd v grep, takže poďme sa zaoberať tým, ako vylúčiť zhody reťazcov a vylúčiť slová pomocou grep.
Zrejme budete chcieť mať nejaké skúsenosti s príkazovým riadkom a poznať grep, aby to bolo užitočné. Ak chcete nasledovať, môžete otvoriť aplikáciu Terminál a vyskúšať si to sami. Keďže grep je agnostický nástroj OS, môžete použiť trik na vylúčenie v Mac OS, Linuxe, unixe alebo v čomkoľvek inom, čo používa grep.
Ako vylúčiť jedno slovo pomocou grep
Najjednoduchší spôsob, ako vylúčiť riadky so zhodou reťazca alebo syntaxe, je použiť grep a príznak -v.
Povedzme napríklad, že používame cat na tlač súboru na príkazovom riadku, ale chceme vylúčiť všetky riadky, ktoré obsahujú výraz „ThisWord“, potom by syntax vyzerala takto:
cat example.txt | grep -v ThisWord"
Výstupom bude textový súbor example.txt, ale bez akéhokoľvek riadku, ktorý obsahuje reťazec zhodný s „ThisWord“.
Môžete tiež použiť grep priamo na súbory a vylúčiť zhody riadkov na základe slov alebo syntaxe, napríklad:
"grep -v ThisWord>"
Použite to, čo najlepšie vyhovuje vášmu pracovnému postupu.
Ako vylúčiť viacero reťazcov alebo slov pomocou grep
Teraz, keď už viete, ako vylúčiť zhody pre jedno slovo, ďalšou zrejmou otázkou je vylúčenie viacerých slov pomocou grep. Je to rovnako jednoduché a existuje niekoľko rôznych spôsobov, ako to dosiahnuť pomocou príznaku -v, ako aj príznaku -e.
Najprv si vezmime vyššie uvedený príklad použitia cat v súbore presmerovanom do grep a vylúčime všetky riadky zodpovedajúce dvom slovám; „Word1“ a „Word2“ by vyzeralo takto:
"cat example.txt | grep -v -e Slovo1 -e Slovo2"
Všetky riadky, ktoré obsahujú „Slovo1“ alebo „Slovo2“, budú z vytlačených výsledkov vylúčené.
Grep môžete použiť aj priamo na súbory rovnako ako predtým:
"grep -v -e Slovo1 -e Slovo2 príklad.txt"
Ďalším prístupom je oddeliť, čo sa má vylúčiť pomocou grep, pomocou potrubia na oddelenie každej zhody, napríklad:
grep -Ev word1|word2 example.txt"
Ak otestujete ktorúkoľvek z týchto možností na vzorovom textovom súbore, zistíte, že výstup je identický bez ohľadu na prístup, ktorý zvolíte, pričom každý z nich nezahŕňa riadky, ktoré obsahujú zacielené frázy, syntax, slová alebo zhoda textu.
Skvelé, ukážte mi užitočný príklad vylúčenia údajov pomocou grep!
Pre praktický príklad, ktorý môže byť pre pokročilých používateľov počítačov Mac užitočný, môžeme použiť vylúčenie grep pri tlači a dotazovaní na históriu príkazového riadka, aby sme našli predtým spustené príkazy na nájdenie zhôd predvolených nastavení, ale vylúčime niektoré vybrané predvolené reťazce z výkon.
V tomto príklade vytlačíme históriu príkazov pre predvolené zhody reťazcov, ale vylúčime akúkoľvek zhodu, ktorá súvisí s iTunes, ako je definované v „com.apple.itunes“:
"história |predvolené nastavenia grepu zápis |grep -v -e com.apple.itunes"
Takže ak ste to sledovali, toto by hlásilo všetky historické vykonania príkazu „zápis predvolených nastavení“, ale s výnimkou všetkého, čo sa týkalo aplikácie iTunes. Pekné, však?
Ak máte nejaké obzvlášť praktické využitie vylúčenia zhôd s grep, podeľte sa o ne s nami v komentároch nižšie! A ak sa vám tento článok páčil, takmer určite by ste si radi prezreli naše mnohé články o príkazovom riadku tu, kde je toho veľa, čo sa môžete dozvedieť!