Chcete nájsť súbor, ktorého obsahom je konkrétny text?

Bábika s lupou

Niektorí sa ma pýtali na funkčnosť, ktorú obsahujú najnovšie verzie systému Microsoft Windows a pomocou ktorej môžete pomocou vyhľadávacieho nástroja vyhľadať nielen súbory s určitým názvom, ale môžete zahrnúť aj nájsť text súbory, ktoré obsahujú taký text, napríklad PDF, dokumenty balíka Microsoft Office, textové súbory .txt atď. Mali by ste vedieť, že vo svojej distribúcii GNU / Linux môžete urobiť ešte oveľa viac.

V LxA sme už vykonali malé návody príkazov ako find, whereis, locate atď. Teraz vám povieme spôsob, ako znova vytvoriť túto funkcionalitu, o ktorej som hovoril v prvom odseku z vašej konzoly. Ako hovorím, Linux je mimoriadne flexibilný a má rôzne nástroje na hľadanie vecí, no, tu vám ukážeme niektoré z rôznych spôsobov, ktoré môžete použiť na vyhľadávanie súborov, v ktorých sa nachádza určitý text alebo reťazec: Ak chcete vyhľadajte slovo alebo reťazec v súboroch adresára môžete použiť:

grep -s hola /home/*

grep -R hola /home/*

grep -Rw hola /home/*

V predchádzajúcom príklade by sme hľadali slovo „ahoj“ v adresári / home vo všetkých súboroch, ktoré existujú. V prvom prípade s voľbou -s sa vykoná nerekurzívne vyhľadávanie, zatiaľ čo s -R sa stane rekurzívnym, takže ak sú vo vnútri podadresáre, bude prehľadávať aj tam ... Ale pozor, prehľadal by sa všetok obsah s týmto reťazcom «ahoj", Preto ak existuje fráza alebo slovo ako "ahoj", považovalo by to tiež za platné a zobrazilo súbory, ktoré ho obsahujú, to znamená, že dané slovo nehľadá konkrétnym spôsobom. Aby ste to upresnili, môžete použiť tretiu možnosť.

Pamätajte, že sa pri ňom budú rozlišovať veľké a malé písmená, takže predchádzajúce príklady ignorujú veci ako Hello, HELLO, holA atď. Ak chcete urobiť hľadať a ignorovať veľké a malé písmená, potom môžete použiť voľbu -i.

Predstavte si, že chcete hľadať obrátene, to znamená všetky tie súbory, kde sa nachádzajú neobsahujú reťazec ani slovo konkrétne. Mohol by si? Pravda je taká, že napríklad:

grep -Rlv hola /home/*

grep --exclude-dir= /home/Desktop -Rlv /home/*

V prvom príklade sa zobrazí celý zoznam súborov, ktoré neobsahujú slovo „ahoj“, zatiaľ čo v druhom prípade by išlo o to isté, ale nájdené súbory sú vylúčené hostené v / home / Desktop ... Mimochodom, táto voľba –exclude-dir = sa dá použiť aj v prvých príkladoch…


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Za údaje zodpovedá: AB Internet Networks 2008 SL
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.

  1.   James Vigo dijo

    Grazas per isto.