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


Haluatko löytää kaikki tiedostot, jotka sisältävät tietyn sanan tai tekstijonon koko Linux-järjestelmässäsi tai tietyssä hakemistossa. Tämä artikkeli opastaa sinua tekemään niin, opit kuinka kaivaa rekursiivisesti hakemistoja löytääksesi ja luetellaksesi kaikki tiedostot, jotka sisältävät tietyn tekstijonon.

Yksinkertainen tapa selvittää tämä on käyttää grep-mallin hakutyökalua. Se on tehokas, tehokas, luotettava ja suosituin komentorivi-apuohjelma kuvioiden ja sanojen löytämiseen tiedostoista tai hakemistoista Unix-tyyppisissä järjestelmissä.

Alla olevassa komennossa luetellaan kaikki tiedostot, jotka sisältävät rivin tekstillä "check_root" etsimällä rekursiivisesti ja aggressiivisesti hakemistosta ~/bin .

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

Jos -R -vaihtoehto käskee grepin lukemaan kaikki tiedostot kunkin hakemiston rekursiivisesti, seuraamalla symbolisia linkkejä vain, jos ne ovat komentorivillä, ja option -w käskee sitä valitsemaan vain ne rivit, jotka sisältävät kyseisen muodon kokonaisia sanoja, ja -e -merkintää käytetään etsimään merkkijonoa (kuvio).

Sinun tulisi käyttää sudo-komentoa etsittäessäsi tiettyjä juurihakemuksia vaativia hakemistoja tai tiedostoja (ellet hallinnoi järjestelmääsi root-tilillä).

 
$ sudo grep -Rw / -e 'check_root'	

Jos haluat jättää kirjainkokoerot huomiotta, käytä -i -vaihtoehtoa kuvan osoittamalla tavalla:

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

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

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

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

Tämä esimerkki kehottaa grepiä katsomaan vain kaikkia .sh -tiedostoja.

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

Lisäksi on mahdollista etsiä useampaa kuin yhtä mallia seuraavan komennon avulla.

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

Se siitä! Jos tiedät muita komentorivin temppuja merkkijonon tai sanan löytämiseksi tiedostoista, jaa kanssamme tai kysy kysymyksiä tästä aiheesta, käytä alla olevaa kommenttilomaketta.