Kako pronaći određeni niz ili riječ u datotekama i direktorijima


Želite li pronaći sve datoteke koje sadrže određenu riječ ili niz teksta na cijelom vašem Linux sustavu ili danom direktoriju. Ovaj će vas članak voditi kako to učiniti, naučit ćete kako rekurzivno kopati po direktorijima kako biste pronašli i popisali sve datoteke koje sadrže zadani niz teksta.

Jednostavan način da se to riješi je korištenje grep alata za pretraživanje uzoraka, moćan je, učinkovit, pouzdan i najpopularniji uslužni program naredbenog retka za pronalaženje uzoraka i riječi iz datoteka ili direktorija na sustavima sličnim Unixu.

Naredba u nastavku popisat će sve datoteke koje sadrže redak s tekstom "check_root", rekurzivnim i agresivnim pretraživanjem direktorija ~/bin .

$ grep -Rw ~/bin/ -e 'check_root'

Gdje opcija -R govori grepu da čita sve datoteke u svakom direktoriju, rekurzivno, slijedeći simboličke poveznice samo ako se nalaze u naredbenom retku, a opcija -w nalaže joj da odabere samo one retke koji sadrže podudarnosti tog oblika cijele riječi, a -e koristi se za određivanje niza (uzorka) koji se traži.

Naredbu sudo trebali biste koristiti prilikom pretraživanja određenih direktorija ili datoteka koje zahtijevaju root dopuštenja (osim ako upravljate svojim sustavom s root računom).

 
$ sudo grep -Rw / -e 'check_root'	

Da biste ignorirali razlike u velikim i malim slovima, upotrijebite opciju -i kako je prikazano:

$ grep -Riw ~/bin/ -e 'check_root'

Ako želite znati točan redak u kojem postoji niz teksta, uključite opciju -n .

$ grep -Rinw ~/bin/ -e 'check_root'

Pod pretpostavkom da postoji nekoliko vrsta datoteka u direktoriju u kojem želite pretraživati, također možete odrediti vrstu datoteka koje ćete pretraživati, na primjer, njihovim proširenjem pomoću opcije --include .

Ovaj primjer upućuje grep da pregledava samo sve datoteke .sh .

$ grep -Rnw --include=\*.sh ~/bin/ -e 'check_root'

Uz to, moguće je potražiti više od jednog uzorka, koristeći sljedeću naredbu.

$ grep -Rinw ~/bin/ -e 'check_root' -e 'netstat'

To je to! Ako znate bilo koji drugi trik naredbenog retka za pronalaženje niza ili riječi u datotekama, podijelite s nama ili postavite bilo kakva pitanja u vezi s ovom temom, upotrijebite obrazac za komentar u nastavku.