Kako isključiti riječ s grep

Sadržaj:

Anonim

Alat naredbenog retka grep iznimno je koristan za pretraživanje tekstualnih podataka za retke i isječke koji odgovaraju definiranom nizu, znaku, riječi ili regularnom izrazu. Dok se većina koristi grep-om za sortiranje podataka za podudaranje sintakse, što ako umjesto toga želite isključiti riječ ili niz pomoću grep-a? Isključivanje podudaranja redaka pomoću grepa jednako je korisno kao i pronalaženje i ispis podudaranja u grepu, pa pokrijmo kako isključiti podudaranja nizova i riječi pomoću grepa.

Očito ćete htjeti imati malo iskustva s naredbenim redkom i biti izloženi grep-u da vam ovo bude korisno. Ako želite pratiti, možete otvoriti aplikaciju Terminal i isprobati je sami. Budući da je grep uslužni program koji ne ovisi o OS-u, možete koristiti trik za isključivanje u Mac OS-u, Linuxu, unixu ili bilo kojem drugom što koristite grep.

Kako isključiti jednu riječ pomoću grepa

Najjednostavniji način za izuzimanje redaka s podudaranjem niza ili sintakse je korištenje grepa i zastavice -v.

Na primjer, recimo da koristimo cat za ispis datoteke u naredbenom retku, ali želimo isključiti sve retke koji uključuju pojam "Ova riječ", tada bi sintaksa izgledala ovako:

"

cat example.txt | grep -v ova riječ"

Izlaz će biti tekstualna datoteka example.txt, ali isključujući bilo koji redak koji sadrži niz koji se podudara s "ThisWord".

Također možete koristiti grep izravno na datotekama i isključiti podudaranja redaka na temelju riječi ili sintakse, na primjer:

"

grep -v ThisWord>"

Upotrijebite ono što najbolje odgovara vašem tijeku rada.

Kako isključiti višestruke nizove ili riječi pomoću grepa

Sada kada znate kako isključiti podudaranja za jednu riječ, sljedeće očito pitanje je o isključivanju više riječi pomoću grepa. To je jednako jednostavno, a postoji nekoliko različitih načina da se to postigne korištenjem zastavice -v kao i zastavice -e.

Prvo uzmimo gornji primjer korištenja cat-a na datoteci koja je povezana s grep-om i isključimo sve retke koji odgovaraju dvjema riječima; "Word1" i "Word2", to bi izgledalo ovako:

"

cat example.txt | grep -v -e Riječ1 -e Riječ2"

Svi redovi koji sadrže "Word1" ili "Word2" bit će isključeni iz ispisanih rezultata.

Također možete koristiti grep izravno na datotekama kao i prije:

"

grep -v -e Word1 -e Word2 example.txt"

Drugi pristup je odvajanje onoga što treba isključiti pomoću grep-a korištenjem cijevi za odvajanje svakog podudaranja, na primjer:

"

grep -Ev word1|word2 example.txt"

Ako isprobate bilo koju od ovih opcija na primjeru tekstualne datoteke, vidjet ćete da je izlaz identičan bez obzira na pristup koji koristite, a svaka isključuje retke koji uključuju ciljane fraze, sintaksu, riječi ili podudaranje teksta.

Super, pokaži mi koristan primjer isključivanja podataka pomoću grepa!

Za praktičan primjer koji bi naprednim korisnicima Maca mogao biti od pomoći, možemo upotrijebiti grep exclusion prilikom ispisivanja i postavljanja upita povijesti naredbenog retka kako bismo pronašli prethodno izvršene naredbe kako bismo pronašli podudaranja sa zadanim vrijednostima, ali isključujući neke odabrane zadane nizove iz izlaz.

U ovom primjeru ispisat ćemo povijest naredbi za podudaranje zadanih nizova, ali isključiti sve što se podudara što ima veze s iTunesom kako je definirano u “com.apple.itunes”:

"

history |grep defaults write |grep -v -e com.apple.itunes"

Dakle, ako ste pratili, ovo bi izvijestilo o svim povijesnim izvršavanjima naredbe "defaults write", ali isključujući sve što se odnosilo na aplikaciju iTunes. Lijepo ha?

Ako imate neke posebno korisne načine korištenja isključivanja podudaranja s grep-om, podijelite ih s nama u komentarima ispod! A ako ste uživali u ovom članku, gotovo sigurno biste željeli pregledati naše brojne članke o naredbenom retku ovdje gdje možete naučiti još mnogo toga!

Kako isključiti riječ s grep