Ako naznačuje názov grepu, vzor na hľadanie je opísaný pomocou regulárneho výrazu. Regulárny výraz je špeciálny typ reťazca, ktorý popisuje vzor, ktorý sa má nájsť, vyhľadať a spravovať. Ak sa chcete dozvedieť viac informácií o grep a regulárnom výraze, vyskúšajte použitie grep a egrep s regulárnym výrazom.
Na demonštračné účely vezmite ukážkový textový súbor. V tomto príklade si stiahnite GNU General Public License v3.0 textových súborov.
Základné hľadanie
Základným spôsobom použitia grepu je vyhľadanie základného reťazca.
Pozrite sa na nasledujúci príkaz grep. Vyhľadá v textovom súbore slovo „GNU“.
$ grep "GNU" gpl-3.0.TXT
Ak chcete zobraziť číslo riadku, použite príznak „-n“.
$ grep -n „GNU“ gpl-3.0.TXT
Ak chcete vykonať vyhľadávanie bez rozlišovania malých a veľkých písmen pomocou funkcie grep, použite príznak „-i“.
$ grep -ni „gnu“ gpl-3.0.TXT
Možno nebudete chcieť v určitých situáciách vidieť hľadané zhody, ale iba názov súboru, v ktorom sa zhoda stala. Ak chcete vytlačiť iba názov súboru, použite príznak „-l“. Hviezdička tu označuje použitie všetkých textových súborov v aktuálnom adresári.
$ grep -l „gnu“ *
Môžeme tiež odoslať výstup ďalších príkazov na grep.
$ mačka gpl-3.0.txt | grep -n „GNU“
Regulárny výraz
Regex ponúka inteligentný spôsob doladenia vyhľadávania. Má svoje pravidlá. Rôzne aplikácie a programovacie jazyky však implementujú regulárny výraz inak. Tu je niekoľko príkladov, ktoré môžete použiť s grep.
Ak chcete definovať, že reťazec sa nachádza na začiatku riadku, použite symbol caret (^).
$ grep -n „^ GNU“ gpl-3.0.TXT
Ak chcete definovať, že reťazec sa má nachádzať na konci riadku, použite znak dolára ($).
$ grep -n „až $“ gpl-3.0.TXT
Ak chcete popísať, že na určitom mieste vzoru môže byť akýkoľvek znak, použite bodku (.). Napríklad výraz „G.U “je platné, ak je medzi“ G ”a“ U ”akýkoľvek znak.
$ grep -n „G.U ”gpl-3.0.TXT
Ak chcete popísať, že na konkrétnom mieste vzoru môže byť podmnožina znakov, použite zátvorky ([]). Napríklad výraz „t [wo] o“ hovorí, že zhoda je platná iba pre „dve“ a „tiež“.
$ grep -n „t [wo] o“ gpl-3.0.TXT
Rozšírený regulárny výraz
Ako naznačuje názov, rozšírený regulárny výraz môže robiť zložitejšie veci ako základné regulárne výrazy. Ak chcete použiť rozšírený regulárny výraz s grepom, musíte použiť príznak „-E“.
$ grep -nE Ak chcete vyhľadať dva rôzne reťazce, použite operátory OR (|).
$ grep -nE „GNU | Všeobecné | Licencia“ gpl-3.0.TXT
Hľadanie textu v súboroch
Teraz prichádza hlavná časť. Namiesto manuálneho príkazu grep súboru, aby vykonal vyhľadávanie, ho grep môže vykonať automaticky. V nasledujúcom príkaze použije grep na prehľadanie vzoru všetky dostupné textové súbory v aktuálnom adresári.
$ grep * Ak chcete grep vykonať vyhľadávanie v inom adresári, musíte určiť umiestnenie.
$ grep
Ak existujú priečinky, grep ich predvolene neskúma. Ak chcete grepu povedať, aby vyhľadával rekurzívne, použite príznak „-R“.
$ grep -nR
Grep GUI
Ak dávate prednosť práci s grafickým užívateľským rozhraním, ale napriek tomu si chcete vychutnať funkcie grepu, potom vyskúšajte searchmonkey. Je to front-endové riešenie pre grep. Balík je k dispozícii takmer vo všetkých hlavných distribúciách systému Linux.
Nájdite text v súboroch pomocou nano
GNU Nano je jednoduchý a výkonný textový editor, ktorý sa dodáva s ľubovoľnou distribúciou systému Linux. Má vstavané funkcie na vyhľadávanie textu v textovom súbore.
Upozorňujeme, že pri tomto spôsobe musíte otvoriť textový súbor a vyhľadávať manuálne. Je to možné, ak existuje iba niekoľko textových súborov, s ktorými môžete pracovať. Ak je ich viac, je použitie grep najoptimálnejšou voľbou.
Otvorte textový súbor v nano.
$ nano
Ak chcete vyhľadať zhodu reťazca, stlačte kombináciu klávesov „Ctrl + W“. Po zadaní hľadaného reťazca stlačte kláves „Enter“.
Vyhľadajte text v súboroch pomocou Vim
Vim je známy a pokladaný textový editor. Je to ekvivalent príkazového riadku k modernému textovému editoru. Vim prichádza s mnohými pokročilými funkciami, ako sú doplnky, makrá, automatické dokončovanie, filtre atď.
Podobne ako nano, aj Vim pracuje s jedným súborom súčasne. Ak máte viac textových súborov, je najoptimálnejšou cestou použitie grep.
Ak chcete vyhľadávať v textovom súbore, najskôr ho otvorte vo Vime.
$ vim
Zadajte nasledujúci príkaz Vim a stlačte kláves „Enter“.
$: /
Vyhľadajte text v súboroch pomocou textového editora GNOME
Textový editor GNOME je textový editor, ktorý sa dodáva s pracovnou plochou GNOME. Je to zjednodušujúci textový editor so všetkými základnými funkciami, ktoré by ste očakávali. Je to príjemná alternatíva k textovým editorom príkazového riadku.
Podobne ako v prípade nano a vim platí pri tejto metóde rovnaká opatrnosť. Ak je počet textových súborov veľký, radšej sa držte grep.
Otvorte textový súbor v textovom editore. Stlačením kombinácie klávesov „Ctrl + F“ zobrazíte vyhľadávací panel.
Vyhľadajte text v súboroch pomocou kódu VS
Visual Studio Code je výkonný textový editor s množstvom funkcií. Je optimalizovaná pre programátorov, aby sa mohli používať, akoby išlo o plnohodnotné IDE. Je k dispozícii takmer na všetkých hlavných distribúciách systému Linux.
Nainštalujte si prichytávací balík Visual Studio Code.
$ sudo snap inštalačný kód --classic
Otvorte textový súbor vo VS kóde. Stlačením kombinácie klávesov „Ctrl + F“ spustíte vyhľadávanie.
Záverečné myšlienky
Existuje mnoho spôsobov, ako vyhľadávať text v súboroch. Je ľahké zvládnuť to. Dôrazne sa odporúča ovládať príkaz grep, pretože ponúka najväčšiu hodnotu z hľadiska efektívnosti a ľahkého použitia.
Ak dávate prednosť grafickému používateľskému rozhraniu, môžete si vybrať z mnohých textových editorov. Akýkoľvek moderný textový editor poskytne možnosť hľadania textu.
Šťastné výpočty!