Konkreetse stringi või sõna leidmine failidest ja kataloogidest


Kas soovite leida kõik failid, mis sisaldavad teatud sõna või tekstistringi kogu teie Linuxi süsteemist või antud kataloogist. See artikkel aitab teil seda teha, saate teada, kuidas katalooge rekursiivselt uurida, et leida ja loetleda kõik failid, mis sisaldavad antud tekstistringi.

Lihtne viis selle saavutamiseks on grep-mustriotsingu tööriista kasutamine. See on võimas, tõhus, usaldusväärne ja populaarseim käsurea utiliit mustrite ja sõnade leidmiseks failidest või kataloogidest Unixi-laadsetes süsteemides.

Allpool olev käsk loetleb kõik failid, mis sisaldavad rida tekstiga "check_root", otsides rekursiivselt ja agressiivselt kataloogist ~/bin .

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

Kui suvand -R käsib grepil lugeda kõiki katalooge kuuluvaid faile rekursiivselt, järgides sümboolseid linke ainult siis, kui need asuvad käsureal ja variant -w käsib tal valida ainult need read, mis sisaldavad vormis vasteid terved sõnad ja -e kasutatakse otsitava stringi (mustri) määramiseks.

Teatud kataloogide või failide otsimiseks, mis vajavad juurõigusi, peaksite kasutama käsku sudo (kui te ei halda oma süsteemi juurkontoga).

 
$ sudo grep -Rw / -e 'check_root'	

Suur- ja väiketähtede eristamise eiramiseks kasutage valikut -i , nagu näidatud:

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

Kui soovite teada teksti rea täpset rida, lisage valik -n .

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

Eeldades, et kataloogis, mida soovite otsida, on mitut tüüpi faile, saate ka laienduse abil määrata otsitavate failide tüübi, kasutades valikut --include .

Selles näites antakse grepile käsk vaadata ainult kõiki .sh -faile.

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

Lisaks on järgmise käsu abil võimalik otsida mitut mustrit.

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

See on kõik! Kui teate mõnda muud käsurea nippi failide stringi või sõna leidmiseks, jagage meiega või küsige selle teema kohta küsimusi, kasutage allolevat kommentaarivormi.