Průvodce pro začátečníky

Jak najít řetězec v souboru v systému Linux

Jak najít řetězec v souboru v systému Linux

Někdy možná budete muset vyhledat určité slovo nebo řetězec uvnitř souboru. K tomu má téměř každý textový editor implementaci grafického uživatelského rozhraní, která vám pomůže. Ale pro uživatele Linuxu je mnohem produktivnější a pohodlnější provádět tato vyhledávání z příkazového řádku.

Ve skutečnosti má Linux výkonný a pohodlný nástroj příkazového řádku - příkaz grep pro tento účel. Tímto způsobem můžete vyhledat konkrétní řetězec nejen v jednom souboru, ale ve více souborech pro komplexnější vyhledávání.

Než však budete moci použít příkaz grep, musíte nejprve vědět, jak to funguje, a jeho syntaxe. Abychom vám pomohli, sestavili jsme podrobného průvodce používáním příkazu grep, který vám pomůže najít řetězce v souboru v systému Linux. Nejen to, ale ukážeme vám také, jak hledat řetězce v souborech pomocí textového editoru příkazového řádku a textového editoru GUI.

Poznámka: Pro tento tutoriál jsme vytvořili dva ukázkové textové soubory - demofile.txt a demofile02.txt. K nalezení řetězců v těchto souborech použijeme příkaz grep. Zde je pohled na obsah obou těchto souborů, abyste věděli, jak příkazy fungují.

Obsah demofilu.txt:

Toto je ukázkový soubor, který jsem vytvořil pro demonstrační účely. To obsahuje spoustu slov k vytvoření vět, které nakonec končí tečkou. Toto je příklad grep.

Obsah demofilu02.txt:

Toto je další ukázkový soubor, který použiji pro tuto demonstraci. Tenhle je podobný tomu poslednímu, protože obsahuje tři řádky s několika slovy. Tento druhý soubor pomůže poskytnout několik různorodých příkladů.

Hledání řetězců v souboru pomocí příkazového řádku (metoda GREP)

GREP je zkratka pro Global Regular Expression Print. Je „globální“, protože dokáže prohledat celý váš systém Linux. „Regulární výraz“ je to, čemu říkáme vzor textového vyhledávání, který použijeme s příkazem. A „Tisk“ znamená, že vytiskne výsledky hledání, jakmile najde shodu na základě poskytnutého regulárního výrazu.

Nyní, když máte představu o tom, co je příkaz grep, podívejme se, jak jej můžeme použít. Zde je syntaxe pro použití příkazu grep k vyhledání řetězce v souboru:

$ grep tětiva název souboru

Budete muset nahradit výraz „řetězec“ výrazem „regulární výraz“, který chcete použít, a výraz „název souboru“ názvem souboru, ve kterém chcete řetězec vyhledat.

# 1. Použití GREP k vyhledání řetězce v jednom souboru

Řekněme tedy, že chcete vyhledat slovo „demonstrace“ v souboru „demofile“.txt, ”budete muset použít tento příkaz:

$ grep demonstrační demofil.txt

Který dává výstup:

Použití GREP k vyhledání řetězce v jednom souboru

Jak vidíte, příkaz načte celý řádek obsahující zadaný řetězec. Pokud se zadaný řetězec vyskytuje ve více řádcích, vytiskne se všechny. Podívejme se, jestli to funguje, hledáním řetězce „This“ v „demofile.txt ”.

$ grep Tento demofil.txt

A výstup je:

grep rozlišuje velká a malá písmena

Všimněte si, jak jste nejprve použili řetězec „this“ a nic nevytisklo. Teprve když zadáte „This“, získáte shodu. Jako takový byste si měli pamatovat, že příkaz grep rozlišuje velká a malá písmena.

Chcete-li případ ignorovat, musíte místo toho zadat tento příkaz:

$ grep -i tento demofil.txt

Jak ignorovat případ v příkazu grep

Jak nyní vidíte, i když je zadaný řetězec „this“, příkaz odpovídá „This“ a tuto odpověď vytiskne.

# 2. Použití GREP k vyhledání stejného řetězce ve více souborech

Chcete-li vyhledat zadaný řetězec ve více souborech, stačí přidat příkaz se všemi názvy souborů.

Zde je příklad. Zde hledáme řetězec „slova“ v souborech „demofile“.txt “a„ demofile02.txt ”:

$ grep slova demofile.txt demofile02.txt

A výstup je:

Použití GREP k nalezení stejného řetězce ve více souborech

Jak vidíte, příkaz grep vám nejen ukáže odpovídající výsledek, ale také pohodlně označí, ze kterého souboru je.

# 3. Použití GREP k vyhledání více řetězců ve více souborech

Můžete také použít grep k vyhledání více řetězců v jednom nebo více souborech. Toto je syntaxe, kterou budete muset použít:

$ grep -E 'pattern1 | pattern2 | pattern3 |…' název_souboru1 název_souboru2 název_souboru3 .. 

Možnost -E, kterou jsme zadali, považuje následující vzor za rozšířený regulární výraz, který nám umožňuje vyhledávat více řetězců.

Nyní použijeme to, co jsme se naučili, k vyhledání řetězců „soubor“ a „slova“ ve dvou souborech: „demofile.txt “a„ demofile02.txt ”:

$ grep -E 'soubor | slovo' demofil.txt demofile02.txt

A výstup je:

Použití GREP k vyhledání více řetězců ve více souborech

# 4. Tipy a triky pro použití příkazu GREP k hledání řetězců

Navzdory své celkové jednoduchosti je příkaz grep extrémně výkonný. Tady je několik způsobů, jak můžete použít příkaz grep pro pokročilé vyhledávání řetězců.

Například jste věděli, že můžete použít příkaz grep se zástupnými znaky? Zvažme tento příkaz:

$ grep slovo demofile *

Který dává výstup:

grep a zástupné znaky

Jak vidíte, příkaz vyhledal a nyní zobrazuje výsledky pro oba soubory „demofile.txt “a„ demofile02.txt “. Je to proto, že jsme použili zástupný znak hvězdička (*), který slouží k reprezentaci jednoho nebo více výskytů libovolného znaku.

Další informace o různých typech zástupných znaků a o tom, jak je používat, najdete v tomto čtení: Zástupné znaky v systému Linux jsou vysvětleny s 10 příklady.

Příkaz grep dále podporuje spoustu možností příkazů. Dva z nich jsme již viděli:

Existuje spousta dalších možností příkazů grep, jako například:

Všechno, o čem jsme dosud diskutovali, by mělo být spousta, aby vám pomohlo hledat řetězce v souborech. Pokud však chcete zvládnout příkaz GREP, doporučujeme vám podívat se na tyto dva články:

Najděte řetězce v souboru pomocí příkazového řádku (pomocí textových editorů příkazového řádku)

Příkaz grep je mocný nástroj, který vám pomůže provést pokročilé vyhledávání, aby se ve vašem počítači se systémem Linux spojily řetězce s několika soubory a adresáři. Pokud však již máte soubor otevřený v textovém editoru příkazového řádku, není třeba editor souborů ukončovat a používat příkaz grep.

Ve skutečnosti většina textových editorů příkazového řádku již přichází s integrovanou vyhledávací funkcí.

Nyní je nad rámec tohoto tutoriálu pokrýt každý textový editor příkazového řádku a jak najít řetězce v souboru otevřeném v tomto textovém editoru. Jako takový se podíváme na dva nejpopulárnější textové editory příkazového řádku, které jste povinni používat:

Jak najít textový řetězec v nano?

Řekněme, že máte soubor otevřený v nano textovém editoru. V takovém případě vše, co musíte udělat, je stisknout Ctrl + W a najdete novou výzvu k zadání řetězce.

Po dokončení stiskněte klávesu Enter a kurzor přistane na prvním znaku prvního výskytu hledaného řetězce. Pokračováním stisknutí klávesy Enter přeskočíte na další instance řetězců, pokud existují.

Jak najít textový řetězec v nano

Jak najít textový řetězec ve vim?

Pokud používáte textový editor vim, můžete zadat: / následovaný řetězcem, který chcete vyhledat, a poté stisknout Enter. Podobně jako dříve, přistane kurzor při prvním výskytu hledaného řetězce. I zde můžete stiskem klávesy Enter přejít na další instance řetězce.

Jak najít textový řetězec ve vim

Najděte řetězce v souboru pomocí příkazového řádku (metoda GUI)

Existuje dokonce metoda GUI pro hledání řetězců v souboru. V podstatě je to obdoba funkce „najít a nahradit“, kterou můžete vidět v aplikaci Microsoft Word; liší se však podle toho, jaký textový editor GUI používáte.

Nyní, jak víte, existují stovky textových editorů a není praktické zde všechny pokrýt. Všechny však fungují podobně, takže nebudete mít žádný problém s prací s ostatními, jakmile budete vědět, jak jeden z nich funguje.

V tomto výukovém programu budeme používat výchozí textový editor dodávaný s Ubuntu, nazvaný - „Textový editor.“

Jak najít řetězec pomocí textových editorů GUI

Jak vidíte z obrázku, otevřeli jsme demofil.txt v editoru. Nyní klikneme na rozevírací nabídku, která odhalí možnosti „Najít“ a „Najít a nahradit“, pomocí kterých můžeme najít všechny řetězce v otevřeném souboru.

Balení

Tím se dostáváme na konec tohoto krátkého tutoriálu o hledání řetězců v souboru v systému Linux. Doufáme, že vám to připadá užitečné a že vám pomohlo zvýšit produktivitu při hledání konkrétních řetězců v systému Linux.

Máte-li jakékoli dotazy, zanechte nám komentář a my vám s vašimi dotazy určitě pomůžeme.

Pokud začínáte s Linuxem, nezapomeňte se podívat na naši sérii Learn Linux. Je plný spousty úžasných tutoriálů, návodů a průvodců určených pro začátečníky a ostřílenější uživatele, které vám pomohou stát se skutečným linuxovým uživatelem.

Hry Nejlepší hry z příkazového řádku pro Linux
Nejlepší hry z příkazového řádku pro Linux
Příkazový řádek není při používání Linuxu jen vaším největším spojencem - může být také zdrojem zábavy, protože jej můžete použít k hraní mnoha zábavn...
Hry Nejlepší aplikace pro mapování gamepadu pro Linux
Nejlepší aplikace pro mapování gamepadu pro Linux
Pokud rádi hrajete hry na Linuxu s gamepadem místo typického vstupního systému pro klávesnici a myš, máte k dispozici několik užitečných aplikací. Mno...
Hry Užitečné nástroje pro hráče Linuxu
Užitečné nástroje pro hráče Linuxu
Pokud rádi hrajete hry na Linuxu, je pravděpodobné, že jste ke zlepšení herního zážitku použili aplikace a nástroje jako Wine, Lutris a OBS Studio. Kr...