Jak vyloučit slovo pomocí grep

Obsah:

Anonim

Nástroj příkazového řádku grep je velmi užitečný pro vyhledávání řádků a úryvků v textových datech, které odpovídají definovanému řetězci, znaku, slovu nebo regulárnímu výrazu. Zatímco většina použití grep je pro třídění dat pro shody syntaxe, co když chcete místo toho vyloučit slovo nebo řetězec pomocí grep? Vyloučení shod řádků pomocí grep je stejně užitečné jako hledání a tisk shod v grep, takže si proberme, jak vyloučit shody řetězců a vyloučit slova pomocí grep.

Je zřejmé, že budete chtít mít nějaké zkušenosti s příkazovým řádkem a seznámit se s grep, abyste to považovali za užitečné. Pokud chcete pokračovat, můžete otevřít aplikaci Terminál a sami si to vyzkoušet. Vzhledem k tomu, že grep je nástroj pro agnostiku OS, můžete použít trik pro vyloučení v Mac OS, Linuxu, unixu nebo v čemkoli jiném, co používá grep.

Jak vyloučit jedno slovo pomocí grep

Nejjednodušším způsobem, jak vyloučit řádky se shodou řetězce nebo syntaxe, je použití grep a parametru -v.

Například řekněme, že používáme cat k tisku souboru na příkazovém řádku, ale chceme vyloučit všechny řádky, které obsahují výraz „ThisWord“, pak by syntaxe vypadala následovně:

"

cat example.txt | grep -v ThisWord"

Výstupem bude textový soubor example.txt, ale bez jakéhokoli řádku, který obsahuje řetězec odpovídající „ThisWord“.

Můžete také použít grep přímo na soubory a vyloučit shody řádků na základě slov nebo syntaxe, například:

"

grep -v ThisWord>"

Použijte to, co nejlépe vyhovuje vašemu konkrétnímu pracovnímu postupu.

Jak vyloučit více řetězců nebo slov pomocí grep

Nyní, když víte, jak vyloučit shody pro jedno slovo, další zřejmá otázka se týká vyloučení více slov pomocí grep. To je stejně jednoduché a existuje několik různých způsobů, jak toho dosáhnout pomocí parametru -v a také parametru -e.

Nejprve si vezměme výše uvedený příklad použití cat v souboru převedeném do grep a vyloučíme všechny řádky odpovídající dvěma slovům; „Slovo1“ a „Slovo2“ by vypadalo takto:

"

cat example.txt | grep -v -e Slovo1 -e Slovo2"

Všechny řádky, které obsahují „Slovo1“ nebo „Slovo2“, budou z tištěných výsledků vyloučeny.

Grep můžete také použít přímo na soubory stejně jako dříve:

"

grep -v -e Slovo1 -e Slovo2 příklad.txt"

Dalším přístupem je oddělit to, co se má vyloučit pomocí grep, pomocí rourky k oddělení každé shody, například:

"

grep -Ev word1|word2 example.txt"

Pokud kteroukoli z těchto možností vyzkoušíte na vzorovém textovém souboru, zjistíte, že výstup je identický bez ohledu na přístup, který zvolíte, každý s výjimkou řádků, které obsahují cílené fráze, syntaxi, slova nebo shoda textu.

Skvělé, ukažte mi užitečný příklad vyloučení dat pomocí grep!

Pro praktický příklad, který může být užitečný pro pokročilé uživatele počítačů Mac, můžeme použít vyloučení grep při tisku a dotazování na historii příkazového řádku, abychom našli dříve provedené příkazy k nalezení shod výchozích nastavení, ale vyloučíme některé vybrané výchozí řetězce z výstup.

V tomto příkladu vytiskneme historii příkazů pro výchozí shody řetězců, ale vyloučíme jakoukoli shodu, která má co do činění s iTunes, jak je definováno v „com.apple.itunes“:

"

history |výchozí nastavení grep zápis |grep -v -e com.apple.itunes"

Pokud jste to sledovali, toto by hlásilo všechna historická provedení příkazu „defaults write“, ale s výjimkou všeho, co se týkalo aplikace iTunes. Pěkné, co?

Pokud máte nějaké obzvláště praktické využití vyloučení shod s grep, podělte se o ně s námi v komentářích níže! A pokud se vám tento článek líbil, téměř jistě byste si rádi prohlédli naše mnoho článků o příkazovém řádku zde, kde se můžete dozvědět mnohem více!

Jak vyloučit slovo pomocí grep