Zobrazit řádky před a po zápase přes Grep

Show Lines Before After Match Via Grep



Grep byl široce používán v systémech Linux při práci na některých souborech, hledání určitého konkrétního vzoru a mnoha dalších. Tentokrát používáme příkaz grep k zobrazení řádků před a za odpovídajícím klíčovým slovem použitým v nějakém konkrétním souboru. Za tímto účelem budeme v celé naší příručce používat příznak -A, -B a -C. Pro lepší porozumění tedy musíte provést každý krok. Ujistěte se, že máte nainstalovaný systém Linux Ubuntu 20.04.

Nejprve musíte otevřít terminál příkazového řádku Linuxu, abyste mohli začít pracovat na grep. Aktuálně se nacházíte v domovském adresáři systému Ubuntu hned po otevření terminálu příkazového řádku. Zkuste tedy pomocí níže uvedeného příkazu ls vypsat všechny soubory a složky v domovském adresáři vašeho systému Linux a získáte vše. Vidíte, máme v něm uvedeny některé textové soubory a některé složky.







ls



Příklad 01: Použití „-A“ a „-B“

Z výše uvedený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 nejprve textový soubor one.txt pomocí oblíbeného příkazu cat, jak je uvedeno níže:



$kočkaone.txt





Nejprve uvidíme v tomto textovém souboru shodu konkrétních slov 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, ve kterých jsme my.

$rukojeťmy one.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 pomocí stejného textového souboru one.txt jsme odpovídali slovu my a zobrazovali jsme před ním 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á před řádkem konkrétního slova více řádků. Ukazuje také tyto řádky, které obsahují konkrétní slovo.

$rukojeť–B3my one.txt

Použijme stejné klíčové slovo my z tohoto souboru k zobrazení 3 řádků za řádkem, který obsahuje slovo my. Vlajka -A představuje After. Výstup opět zobrazí pouze 2 řádky, protože v souboru nemá více řádků.

$rukojeť-NA3my one.txt

Pojďme tedy použít nové klíčové slovo k přiřazení a zobrazit řádky nebo řádky před a za řádkem, ve kterém leží. Takže jsme použili slovo může být uzavřeno. Čísla řádků jsou v tomto případě stejná. 3 řádky za odpovídajícím slovem bylo možné zobrazit níže pomocí příkazu grep.

$rukojeť-NA3může one.txt

Můžete zobrazit výstup před řádky shodného slova pomocí klíčového slova can. Naproti tomu zobrazuje pouze dva řádky před řádkem přiřazeného slova, protože před ním již žádné řádky nejsou.

$rukojeť–B3může one.txt

Příklad 02: Použití „-A“ a „-B“

Vezměme si z domovského adresáře další textový soubor two.txt a zobrazme jeho obsah pomocí níže uvedeného příkazu cat.

$kočkatwo.txt

Pojďme zobrazit 5 řádků před slovem Most ze souboru two.txt pomocí příkazu grep. Výstup zobrazuje 5 řádků, než řádek obsahuje konkrétní slovo.

$rukojeť–B5Většina two.txt

Příkaz grep pro zobrazení 5 řádků za slovem Most z textového souboru two.txt byl uveden níže.

$rukojeť-NA5Většina two.txt

Změňme hledané klíčové slovo. Použijeme jako klíčové slovo, které se tentokrát bude shodovat. Zobrazte 2 řádky, než lze slovo z textového souboru two.txt provést pomocí níže uvedeného příkazu grep. Výstup zobrazuje dva řádky pro klíčové slovo, protože se v souboru nachází dvakrát. Výstup tedy obsahuje více než 2 řádky.

$rukojeť–B2of two.txt

Nyní zobrazování 2 řádků souboru two.txt po řádku, který obsahuje klíčové slovo, lze provést pomocí níže uvedeného příkazu. Výstup opět zobrazí více než 2 řádky.

$rukojeť-NA2of two.txt

Příklad 03: Použití ‘-C’

Další příznak -C byl použit k zobrazení řádků před a za odpovídajícím slovem. Pojďme zobrazit obsah souboru one.txt pomocí příkazu cat.

$kočkaone.txt

Jako klíčové slovo, které se má shodovat, vybíráme společnost. Níže uvedený příkaz grep zobrazí 2 řádky před a 2 řádky za řádkem, který obsahuje slovo společnost. Výstup zobrazuje jeden řádek před konkrétním řádkem slova a 2 řádky za ním.

$rukojeť-C2společnost one.txt

Podívejme se na obsah souboru two.txt pomocí níže uvedeného příkazu cat.

$kočkatwo.txt

Na tomto obrázku používáme básně jako klíčové slovo pro shodu. K tomu tedy proveďte níže uvedený příkaz. Výstup zobrazuje dva řádky před a dva řádky za odpovídajícím slovem.

$rukojeť-C2básně two.txt

K přiřazení použijme ještě jedno klíčové slovo ze souboru two.txt. Tentokrát konzumujeme přírodu jako klíčové slovo. Vyzkoušejte tedy níže uvedený příkaz při použití -C jako příznaku s klíčovým slovem nature ze souboru two.txt. Tentokrát má výstup ve výstupu více než dva řádky. Protože soubor obsahuje slovo příroda více než jednou, je to důvod, proč se za ním skrývá. 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é odpovídalo stejnému klíčovému slovu, příroda má před sebou dva řádky, ale po něm nejsou žádné řádky, protože je na posledním řádku souboru.

$rukojeť-C2básně two.txt

Závěr

Úspěšně zobrazujeme řádky před a za konkrétním slovem při použití instrukce grep.