GNU/Linux >> Znalost Linux >  >> Linux

Jak najít řetězec v souboru na Linuxu

Někdy možná budete muset hledat konkrétní slovo nebo řetězec v souboru. K tomu má téměř každý textový editor nějakou implementaci GUI, 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 – pro tento účel příkaz grep. Pomocí toho můžete hledat 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 funguje a jeho syntaxe. A tak, 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 Linuxu. Nejen to, ale také vám ukážeme, 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 vyhledání ř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 souboru demofile.txt:

This is a demo file that I have created for demonstration purposes.
This contains a bunch of words to create sentences that finally end with a period.
This is for the grep example.

Obsah souboru demofile02.txt:

This is another demo file that I'll use for this demonstration.
This one is similar to the last one as it contains three lines with some words.
This second file will help to provide some diversified examples.

Vyhledá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, co nazýváme vzor vyhledávání textu, který použijeme s příkazem. A „Tisk“ znamená, že vytiskne výsledky vyhledává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, pojďme se podívat, jak jej můžeme použít. Zde je syntaxe pro použití příkazu grep k nalezení řetězce v souboru:

$ grep string filename

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

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

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

$ grep demonstration demofile.txt

Což dává výstup:

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

$ grep This demofile.txt

A výstup je:

Všimněte si, jak jste nejprve použili řetězec „toto“ a nic nevytisklo. Shodu získáte pouze tehdy, když zadáte „Toto“. Měli byste si proto pamatovat, že příkaz grep rozlišuje velká a malá písmena.

Chcete-li ignorovat malá a velká písmena, musíte místo toho zadat tento příkaz:

$ grep -i this demofile.txt

Jak nyní vidíte, i když je zadaný řetězec „toto“, příkaz odpovídá „toto“ a vypíše tuto odpověď.

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

Chcete-li prohledat zadaný řetězec ve více souborech, vše, co musíte udělat, je připojit příkaz se všemi názvy souborů.

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

$ grep words demofile.txt demofile02.txt

A výstup je:

Jak můžete vidět, 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 nalezení více řetězců ve více souborech

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

$ grep -E 'pattern1|pattern2|pattern3|...' filename1 filename2 filename3 ...

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

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

$ grep -E 'file|word' demofile.txt demofile02.txt

A výstup je:

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

Přes svou celkovou jednoduchost je příkaz grep extrémně výkonný. Zde je několik způsobů, jak můžete použít příkaz grep pro pokročilé vyhledávání řetězců.

Věděli jste například, že můžete použít příkaz grep se zástupnými znaky? Podívejme se na tento příkaz:

$ grep word demofile*

Což dává výstup:

Jak můžete vidět, 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ý se používá k reprezentaci jednoho nebo více výskytů jakéhokoli znaku.

Další informace o různých typech zástupných znaků a jejich použití najdete v tomto článku:Zástupné znaky v Linuxu vysvětleny na 10 příkladech.

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

  • -i:používá se k ignorování velkých a malých písmen.
  • -E:používá se k zacházení s následujícím řetězcem jako s rozšířeným regulárním výrazem.

Existuje spousta dalších možností příkazu grep, jako je:

  • -r:provede rekurzivní vyhledávání.
  • -c:spočítá celkový počet výskytů řetězce.
  • -n:vytiskne číslo řádku, kde se řetězec vyskytl.
  • -o:vytiskne pouze odpovídající řetězec a netiskne celý řádek.

Vše, co jsme dosud probrali, by vám mělo pomoci při hledání řetězců v souborech. Pokud však chcete ovládat příkaz GREP, doporučujeme vám přečíst si tyto dva články:

  • Použití příkazu GREP v systému Linux s příklady 
  • 5 nejčastějších použití příkazu GREP v systému Linux 

Vyhledání řetězců 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 může pomoci provádět pokročilá vyhledávání a přiřazovat řetězce k několika souborům a adresářům na vašem počítači se systémem Linux. Pokud však již máte soubor otevřený v textovém editoru příkazového řádku, pak není nutné opouštět editor souborů a používat příkaz grep.

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

Nyní je nad rámec tohoto výukového programu pokrýt každý jednotlivý textový editor příkazového řádku a jak najít řetězce v souboru otevřeném v tomto textovém editoru. Proto se podíváme na dva nejoblíbenější textové editory příkazového řádku, které musíte používat:

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

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

Po dokončení stiskněte Enter a kurzor přistane na prvním znaku prvního výskytu hledaného řetězce. Můžete stisknout Enter a přeskočit na další instance řetězce, pokud existují.

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

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

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 podobné funkci „najít a nahradit“, kterou můžete vidět v aplikaci Microsoft Word; bude se však lišit podle toho, který textový editor GUI používáte.

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

V tomto tutoriálu budeme používat výchozí textový editor, který je součástí Ubuntu, nazvaný „Textový editor“.

Jak můžete vidět z obrázku, v editoru jsme otevřeli soubor demofile.txt. Nyní klikneme na rozevírací nabídku, která odhaluje možnosti „Najít“ a „Najít a nahradit“, které můžeme použít k nalezení libovolných řetězců v otevřeném souboru.

Koneckonců

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

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

Pokud s Linuxem začínáte, nezapomeňte se podívat na naši sérii Learn Linux. Je plná úžasných výukových programů, návodů a příruček navržených pro začátečníky i zkušenější uživatele, které vám pomohou stát se skutečným zkušeným uživatelem Linuxu.


Linux
  1. Jak najít soubor v Linuxu

  2. Jak najít nejstarší soubor ve stromu adresářů v Linuxu

  3. Jak přejmenovat soubor v Linuxu?

  1. Linuxový příkaz grep

  2. Jak najít řádky obsahující řetězec v linuxu

  3. Jak grep \nv souboru

  1. Linux – Jak zjistit datum vytvoření souboru?

  2. Jak obnovit odstraněný soubor pod Linuxem?

  3. Jak najít soubor s name=php.ini na linuxu pomocí příkazu grep