Jak název grep napovídá, vzor k hledání je popsán pomocí regulárního výrazu. Regulární výraz je speciální typ řetězce, který popisuje vzor, který se má najít, vyhledat a spravovat. Chcete-li se dozvědět více o grep a regulárním výrazu, vyzkoušejte použití grep a egrep s regulárním výrazem.
Pro demonstrační účely si vezměte ukázkový textový soubor. V tomto příkladu si stáhněte GNU General Public License v3.0 textového souboru.
Základní vyhledávání
Základní způsob použití grepu je hledat základní řetězec.
Podívejte se na následující příkaz grep. Vyhledá slovo „GNU“ v textovém souboru.
$ grep "GNU" gpl-3.0.txt
Chcete-li zobrazit číslo řádku, použijte příznak „-n“.
$ grep -n „GNU“ gpl-3.0.txt
Chcete-li provést vyhledávání bez ohledu na velikost písmen pomocí grep, použijte příznak „-i“.
$ grep -ni „gnu“ gpl-3.0.txt
V některých situacích možná nebudete chtít vidět shody hledání, ale pouze název souboru, kde ke shodě došlo. Chcete-li vytisknout pouze název souboru, použijte příznak „-l“. Hvězdička zde označuje použití všech textových souborů v aktuálním adresáři.
$ grep -l „gnu“ *
Můžeme také posílat výstup ostatních příkazů na grep.
$ kočka gpl-3.0.txt | grep -n „GNU“
Regulární výraz
Regex nabízí chytrý způsob doladění vyhledávání. Má svá vlastní pravidla. Různé aplikace a programovací jazyky však implementují regulární výraz odlišně. Zde je několik příkladů, které můžete použít s grep.
Chcete-li definovat, že řetězec se nachází na začátku řádku, použijte symbol stříšky (^).
$ grep -n „^ GNU“ gpl-3.0.txt
Chcete-li definovat, že řetězec se nachází na konci řádku, použijte znak dolaru ($).
$ grep -n „až $“ gpl-3.0.txt
Chcete-li popsat, že na určitém místě vzoru může být jakýkoli znak, použijte tečku (.). Například výraz „G.U “je platné, pokud existuje nějaký znak mezi„ G “a„ U “.
$ grep -n „G.U ”gpl-3.0.txt
Chcete-li popsat, že na určitém místě vzoru může být podmnožina znaků, použijte závorky ([]). Například výraz „t [wo] o“ říká, že shoda je platná pouze pro „dva“ a „příliš“.
$ grep -n „t [wo] o“ gpl-3.0.txt
Rozšířený regulární výraz
Jak název napovídá, rozšířený regulární výraz může dělat složitější věci než základní regulární výrazy. Chcete-li použít rozšířený regulární výraz s grep, musíte použít příznak „-E“.
$ grep -nE Chcete-li vyhledat dva různé řetězce, použijte operátory OR (|).
$ grep -nE „GNU | Obecné | Licence“ gpl-3.0.txt
Hledání textu v souborech
Nyní přichází hlavní část. Místo ručního sdělování souboru grep, aby provedl vyhledávání, to může grep udělat automaticky. V následujícím příkazu použije grep k vyhledání vzoru všechny dostupné textové soubory v aktuálním adresáři.
$ grep * Pokud chcete grep provést vyhledávání v jiném adresáři, musíte zadat umístění.
$ grep
Pokud existují složky, grep je ve výchozím nastavení nezkoumá. Chcete-li, aby grep rekurzivně vyhledával, použijte příznak „-R“.
$ grep -nR
Grep GUI
Pokud dáváte přednost práci s grafickým uživatelským rozhraním, ale přesto si chcete užít funkce grepu, podívejte se na searchmonkey. Je to front-endové řešení pro grep. Balíček je k dispozici téměř ve všech hlavních linuxových distribucích.
Najděte text v souborech pomocí nano
GNU Nano je jednoduchý a výkonný textový editor, který je dodáván s jakoukoli distribucí Linuxu. Má integrované funkce pro vyhledávání textu v textovém souboru.
U této metody musíte otevřít textový soubor a vyhledat ručně. Je to možné, pokud existuje jen hrstka textových souborů, se kterými lze pracovat. Pokud je toho víc, pak je použití grep nejoptimálnější volbou.
Otevřete textový soubor v nano.
$ nano
Chcete-li vyhledat shodu řetězce, stiskněte „Ctrl + W“. Po zadání hledaného řetězce stiskněte „Enter“.
Najděte text v souborech pomocí Vim
Vim je známý a pokládaný textový editor. Je to ekvivalent příkazového řádku moderního textového editoru. Vim přichází s řadou pokročilých funkcí, jako jsou pluginy, makra, automatické dokončování, filtry atd.
Podobně jako nano funguje Vim současně s jediným souborem. Pokud máte více textových souborů, je nejoptimálnějším způsobem použití grep.
Chcete-li hledat v textovém souboru, nejprve jej otevřete ve Vimu.
$ vim
Zadejte následující příkaz Vim a stiskněte „Enter“.
$: /
Vyhledejte text v souborech pomocí textového editoru GNOME
Textový editor GNOME je textový editor, který je dodáván s pracovní plochou GNOME. Je to zjednodušující textový editor se všemi základními funkcemi, které byste očekávali. Je to pěkná alternativa k textovým editorům příkazového řádku.
Podobně jako u nano a vim platí pro tuto metodu stejná opatrnost. Pokud je počet textových souborů velký, pak se raději držte grep.
Otevřete textový soubor v textovém editoru. Stisknutím kláves „Ctrl + F“ otevřete vyhledávací lištu.
Najděte text v souborech pomocí VS Code
Visual Studio Code je výkonný textový editor s mnoha funkcemi. Je optimalizován pro programátory, aby se mohli používat, jako by se jednalo o plnohodnotné IDE. Je k dispozici téměř na všech hlavních linuxových distribucích.
Nainstalujte balíček modulu Visual Studio Code Snap.
$ sudo snap instalační kód --classic
Otevřete textový soubor ve VS Code. Stisknutím kláves „Ctrl + F“ spusťte vyhledávání.
Závěrečné myšlenky
Existuje mnoho způsobů, jak vyhledávat text v souborech. Je to snadný úkol zvládnout. Důrazně se doporučuje zvládnout příkaz grep, protože nabízí nejvyšší hodnotu z hlediska efektivity a snadného použití.
Pokud dáváte přednost grafickému uživatelskému rozhraní, můžete si vybrat z mnoha textových editorů. Jakýkoli moderní textový editor poskytne možnost vyhledávání textu.
Šťastný výpočetní výkon!