Tietyn merkkijonon tai sanan löytäminen tiedostoista ja hakemistoista


Haluatko löytää kaikki tietyn sanan tai tekstijonon sisältävät tiedostot koko Linux-järjestelmästäsi tai tietystä hakemistosta. Tämä artikkeli opastaa sinua tekemään sen, opit kuinka rekursiivisesti kaivaa hakemistoja löytääksesi ja luetteloitaksesi kaikki tiedostot, jotka sisältävät tietyn tekstijonon.

Yksinkertainen tapa selvittää tämä on käyttää grep-kuviohakutyökalua. Se on tehokas, tehokas, luotettava ja suosituin komentorivityökalu kuvioiden ja sanojen etsimiseen tiedostoista tai hakemistoista Unix-tyyppisissä järjestelmissä.

Lue myös: 11 kehittynyttä Linuxin Grep-komentoa merkkiluokissa ja hakasulkeissa

Alla oleva komento listaa kaikki tiedostot, jotka sisältävät rivin, jossa on teksti "check_root", etsimällä rekursiivisesti ja aggressiivisesti ~/bin-hakemistosta.

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

Kun -R-vaihtoehto käskee grep lukemaan kaikki tiedostot kussakin hakemistossa rekursiivisesti seuraamalla symbolisia linkkejä vain, jos ne ovat komentorivillä ja vaihtoehdolla -w< käskee sitä valitsemaan vain ne rivit, jotka sisältävät osumia, jotka muodostavat kokonaisia sanoja, ja -e:lla määritetään haettava merkkijono (malli).

Sinun tulee käyttää sudo-komentoa etsiessäsi tiettyjä hakemistoja tai tiedostoja, jotka edellyttävät pääkäyttäjän oikeuksia (ellet hallitse järjestelmääsi juuritilillä).

 
sudo grep -Rw / -e 'check_root'	

Jos haluat jättää huomiotta kirjainkoot, käytä -i-vaihtoehtoa kuvan mukaisesti:

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

Jos haluat tietää tarkan rivin, jolla tekstimerkkijono on, sisällytä vaihtoehto -n.

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

Olettaen, että hakemistossa, josta haluat etsiä, on useita tiedostotyyppejä, voit myös määrittää haettavien tiedostojen tyypin esimerkiksi niiden tunnisteen mukaan käyttämällä --include-vaihtoehtoa.

Tämä esimerkki ohjeistaa grepiä katsomaan vain kaikki .sh-tiedostot.

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

Lisäksi on mahdollista etsiä useampaa kuin yhtä kuviota käyttämällä seuraavaa komentoa.

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

Se siitä! Jos tiedät jonkin muun komentorivin tempun löytääksesi merkkijonoa tai sanaa tiedostoista, jaa se kanssamme tai kysy kysymyksiä tästä aiheesta, käytä alla olevaa kommenttilomaketta.