Jak najít text v souborech v Linuxu

How Find Text Files Linux

Pro správce systému je práce s textovými soubory běžným jevem. Možná potřebujete najít konkrétní část z hromady souborů protokolu pro řešení potíží s něčím? Nebo potřebujete rychle najít dokument, který obsahuje základní informace?

V případě Linuxu existuje mnoho způsobů, jak najít texty v souborech. Je to možné pomocí integrovaných nástrojů i aplikací třetích stran. Podívejte se, jak najít texty v souborech v Linuxu.



Hledání textu v souborech

V závislosti na počtu souborů, na kterých musíte provést vyhledávání, existují dva způsoby, jak provádět textové vyhledávání: automatické nebo ruční. Pokud musíte pracovat s několika textovými soubory, je vhodnější ruční vyhledávání. Pokud však existují stovky textových souborů, pak je automatické vyhledávání nejefektivnější.



Pro automatické vyhledávání použijeme grep. Grep je předinstalován na jakémkoli distribuci Linuxu. Pokud jde o ruční vyhledávání, každý moderní textový editor to zvládne.



Najděte text v souborech pomocí grep

V Linuxu je grep výchozí nástroj pro vyhledávání textů. Jeho název je odvozen z ed příkazu g/re/p, který znamená globální hledání regulárních výrazů a tisk odpovídajících řádků. Je k dispozici na jakémkoli moderním distribuci Linuxu.

Grep je nástroj příkazového řádku. Jeho struktura příkazů je následující.

$rukojeť <volba> <regulární_výraz> <cesta_souboru>

Jak naznačuje název grep, vzor pro 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á shodovat, vyhledávat a spravovat. Chcete -li se dozvědět více o grep a regulárním výrazu, podívejte se pomocí grep a egrep s regulárním výrazem .



Pro demonstrační účely si vezměte ukázkový textový soubor. V tomto případě si stáhněte soubor Textový soubor GNU General Public License v3.0 .

Základní vyhledávání

Základním způsobem použití grep je hledání základního řetězce.

Podívejte se na následující příkaz grep. V textovém souboru vyhledá slovo GNU.

$rukojeť 'GNU'lpg-3,0.txt

Chcete -li zobrazit číslo řádku, použijte příznak -n.

$rukojeť -nGNU gpl-3,0.txt

Chcete -li pomocí grep provádět vyhledávání nerozlišující malá a velká písmena, použijte příznak -i.

$rukojeť -nignu gpl-3,0.txt

V některých situacích možná nebudete chtít vidět shody vyhledávání, ale pouze název souboru, kde k shodě došlo. Chcete -li vytisknout pouze název souboru, použijte příznak -l. Zde hvězdička označuje použití všech textových souborů v aktuálním adresáři.

$rukojeť -tenGNU*

Můžeme také poslat výstup dalších příkazů do grep.

$kočkalpg-3,0.txt| rukojeť -nGNU

Regulární výraz

Regex nabízí chytrý způsob doladění vyhledávání. Má to svá 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 bude nalezen na začátku řádku, použijte symbol caret (^).

$rukojeť -n^ GNU gpl-3,0.txt

Chcete -li definovat, že se řetězec nachází na konci řádku, použijte znak dolaru ($).

$rukojeť -ndo $ 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 je mezi G a U jakýkoli znak.

$rukojeť -nG.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 platí pro dva a také pouze.

$rukojeť -nt[Kde]o gpl-3,0.txt

Rozšířený regulární výraz

Jak název napovídá, rozšířený regulární výraz dokáže 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.

$rukojeť -narozený <extended_regex> <soubor>

Chcete -li vyhledat dva různé řetězce, použijte operátory NEBO (|).

$rukojeť -narozenýGNU|Všeobecné|Licence gpl-3,0.txt

Hledání textu v souborech

Nyní přichází hlavní část. Místo toho, abyste ručně řekli souboru grep, aby provedl vyhledávání, grep to může udělat automaticky. V následujícím příkazu použije grep pro hledání vzoru všechny dostupné textové soubory v aktuálním adresáři.

$rukojeť <regex> *

Pokud chcete grep provést vyhledávání v jiném adresáři, musíte zadat umístění.

$rukojeť <regex> <cesta_ adresáře>

Pokud existují složky, grep je ve výchozím nastavení nezkoumá. Chcete -li příkazu grep sdělit rekurzivně, použijte příznak -R.

$rukojeť -nR <regex> <cesta_ adresáře>

Grip GUI

Pokud dáváte přednost práci s GUI, ale přesto si chcete užít funkce grep, 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 distribucích Linuxu.

Najděte text v souborech pomocí nano

GNU Nano je jednoduchý a výkonný textový editor, který je součástí jakéhokoli distribučního systému Linux. Má vestavěné funkce pro vyhledávání textu v textovém souboru.

Všimněte si, že v této metodě musíte otevřít textový soubor a hledat ručně. Je to proveditelné, pokud existuje jen hrstka textových souborů, se kterými je možné pracovat. Pokud je toho více, pak je použití grep nejoptimálnější volbou.

Otevřete textový soubor v nano.

$nano <cesta_souboru>

Chcete -li vyhledat shodu řetězce, stiskněte Ctrl + W. Po zadání řetězce, který chcete vyhledat, 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 doplňky, makra, automatické dokončování, filtry atd.

Podobně jako nano, Vim pracuje s jediným souborem najednou. Pokud máte více textových souborů, pak je použití grep nejoptimálnějším způsobem.

Chcete -li hledat v textovém souboru, nejprve jej otevřete ve Vim.

$přišel jsem <cesta_souboru>

Zadejte následující příkaz Vim a stiskněte Enter.

$:/<hledaný výraz>

Najděte 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šený 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ý, raději se držte grep.

Otevřete textový soubor v textovém editoru. Stisknutím Ctrl + F vyvoláte vyhledávací lištu.

Najděte text v souborech pomocí kódu VS

Visual Studio Code je výkonný textový editor s mnoha funkcemi. Je optimalizován pro použití programátory, jako by se jednalo o plnohodnotné IDE. Je k dispozici téměř ve všech hlavních distribucích Linuxu.

Nainstalujte balíček přichycení kódu Visual Studio.

$sudozacvaknoutNainstalujtekód--klasický

Otevřete textový soubor ve VS Code. Hledání zahájíte stisknutím Ctrl + F.

Závěrečné myšlenky

Existuje mnoho způsobů, jak hledat text v souborech. Je to snadný úkol zvládnout. Důrazně doporučujeme zvládnout příkaz grep, protože nabízí největší hodnotu z hlediska efektivity a snadného použití.

Pokud dáváte přednost GUI, máte na výběr z mnoha textových editorů. Každý moderní textový editor poskytne možnost vyhledávání textu.

Šťastný výpočet!