Grep byl široce používán v systémech Linux při práci na některých souborech, hledání nějakého konkrétního vzoru a mnoha dalších. Tentokrát používáme příkaz grep k zobrazení řádků před a za shodným klíčovým slovem použitým v nějakém konkrétním souboru. Za tímto účelem budeme v našem průvodci používat příznaky „-A“, „-B“ a „-C“. Musíte tedy provést každý krok, abyste lépe porozuměli. Ujistěte se, že máte Ubuntu 20.04 Systém Linux nainstalován.
Nejprve musíte otevřít terminál příkazového řádku systému Linux, abyste mohli začít pracovat na grepu. Aktuálně jste v domovském adresáři vašeho systému Ubuntu hned po otevření terminálu příkazového řádku. Zkuste tedy pomocí níže uvedeného příkazu ls vypsat seznam všech souborů a složek v domovském adresáři vašeho systému Linux a získáte všechny. Jak vidíte, máme v něm uvedeny některé textové soubory a některé složky.
je
Příklad 01: Použití '-A' a '-B'
Z výše zobrazených textových souborů se podíváme na některé z nich a pokusíme se na ně použít příkaz grep. Otevřeme textový soubor „jeden.txt “nejprve pomocí populárního příkazu„ cat “:
$ kočka jedna.txt
Nejprve uvidíme shodu některých konkrétních slov v tomto textovém souboru pomocí příkazu grep, jak je uvedeno níže. Hledáme slovo „my“ v textovém souboru „one“.txt “pomocí instrukce grep. Výstup ukazuje dva řádky z textového souboru, které mají v sobě „my“.
$ grep jsme jeden.txt
V tomto příkladu tedy v některých textových souborech ukážeme řádky před a po konkrétní shodě slov. Takže použít stejný textový soubor „jeden.txt “porovnávali jsme slovo„ my “, zatímco jsme před ním zobrazovali 3 řádky, jak je uvedeno níže. Vlajka „-B“ znamená „Před“. Výstup zobrazuje pouze 2 řádky před řádkem konkrétního slova, protože soubor nemá více řádků před řádkem konkrétního slova. Ukazuje také ty řádky, které mají dané konkrétní slovo v nich.
$ grep -B 3 jsme jeden.txt
Použijme stejné klíčové slovo „my“ z tohoto souboru k zobrazení 3 řádků za řádkem, které mají slovo „my“. Vlajka „-A“ představuje „After“. Výstup opět ukazuje pouze 2 řádky, protože v souboru nemá více řádků.
$ grep -A 3 jsme jeden.txt
Pojďme tedy použít nové klíčové slovo, které má být porovnáno, a zobrazit řádky nebo řádky před a za řádkem, ve kterém leží. Takže používáme slovo „může“, aby bylo uzavřeno. Čísla řádků jsou v tomto případě stejná. 3 řádky za odpovídajícím slovem „mohou“ byly zobrazeny níže pomocí příkazu grep.
$ grep -A 3 může.txt
Pomocí klíčového slova „můžete“ můžete vidět, jak se výstup zobrazuje před řádky shodného slova. Naproti tomu zobrazuje pouze dva řádky před řádkem shodného slova, protože před ním nejsou žádné další řádky.
$ grep -B 3 může.txt
Příklad 02: Použití '-A' a '-B'
Vezměme si další textový soubor, „dva.txt, “z domovského adresáře a zobrazte jeho obsah pomocí níže uvedeného příkazu„ cat “.
$ kočka dvě.txt
Podívejme se 5 řádků před slovo „Most“ ze souboru „dva.txt “pomocí příkazu grep. Výstup ukazuje 5 řádků, než řádek obsahuje konkrétní slovo.
$ grep -B 5 Většina dvou.txt
Příkaz grep zobrazí 5 řádků za slovem „Most“ z textového souboru „two“.txt ”je uveden níže.
$ grep -A 5 Většina dvou.txt
Pojďme změnit klíčové slovo, které má být prohledáno. Tentokrát použijeme jako klíčové slovo „of“. Zobrazit 2 řádky před slovem „of“ z textového souboru „two“.txt ”lze provést pomocí níže uvedeného příkazu grep. Výstup zobrazuje dva řádky pro klíčové slovo „of“, protože se v souboru vyskytuje dvakrát. Výstup tedy obsahuje více než 2 řádky.
$ grep -B 2 ze dvou.txt
Nyní se zobrazují 2 řádky souboru „dva.txt “za řádek, který obsahuje klíčové slovo„ of “lze provést pomocí níže uvedeného příkazu. Výstup opět zobrazí více než 2 řádky.
$ grep -A 2 ze dvou.txt
Příklad 03: Použití znaku „-C“
K zobrazení řádků před a za odpovídajícím slovem byl použit další příznak „-C“. Pojďme zobrazit obsah souboru „jeden.txt “pomocí příkazu cat.
$ kočka jedna.txt
Jako klíčové slovo, které je třeba porovnat, jsme vybrali „společnost“. Níže uvedený příkaz grep zobrazí 2 řádky před a 2 řádky za řádkem, který v něm obsahuje slovo „společnost“. Výstup zobrazuje jeden řádek před konkrétním slovním řádkem a 2 řádky za ním.
$ grep -C 2 společnost jedna.txt
Podívejme se na obsah souboru „dva.txt “pomocí níže uvedeného příkazu cat.
$ kočka dvě.txt
Na této ilustraci používáme „básně“ jako klíčové slovo pro shodu. K tomu tedy proveďte níže uvedený příkaz. Výstup ukazuje dva řádky před a dva řádky za shodným slovem.
$ grep -C 2 básně dvě.txt
Použijme ještě jedno klíčové slovo ze souboru „dva.txt “, které mají být uzavřeny. Tentokrát jako klíčové slovo konzumujeme „přírodu“. Zkuste tedy následující příkaz a zároveň použijte „-C“ jako příznak s klíčovým slovem „nature“ ze souboru „two“.txt “. Tentokrát má výstup na výstupu více než dva řádky. Protože soubor obsahuje slovo „příroda“ více než jednou, je to důvod. Klíčové slovo „příroda“, které je na prvním místě, má dva řádky před a dva řádky za ním. Zatímco druhé se shodovalo se stejným klíčovým slovem, „příroda“ má před sebou dva řádky, ale nejsou za ním žádné řádky, protože je na posledním řádku souboru.
$ grep -C 2 básně dvě.txt
Závěr
Jsme úspěšní při zobrazování řádků před a za konkrétním slovem pomocí instrukce grep.