Pokažite vrstice pred in po tekmi prek Grepa

Show Lines Before After Match Via Grep



Grep se je v sistemih Linux široko uporabljal pri delu na nekaterih datotekah, iskanju določenega vzorca in še veliko več. Tokrat z ukazom grep prikažemo vrstice pred in po ujemajoči se ključni besedi, uporabljeni v določeni datoteki. V ta namen bomo v celotnem vodiču uporabljali zastavice -A, -B in, -C. Zato morate za boljše razumevanje izvesti vsak korak. Prepričajte se, da imate nameščen sistem Ubuntu 20.04 Linux.

Najprej morate odpreti terminal ukazne vrstice Linuxa, da začnete delati na grepu. Trenutno ste v domačem imeniku vašega sistema Ubuntu takoj po odprtju terminala ukazne vrstice. Poskusite torej spodaj z ukazom ls navesti vse datoteke in mape v domačem imeniku vašega sistema Linux in dobili boste vse. Vidite, da imamo v njem nekaj besedilnih datotek in nekaj map.







ls



Primer 01: Uporaba '-A' in '-B'

Iz zgoraj prikazanih besedilnih datotek si bomo ogledali nekatere od njih in nanje poskusili uporabiti ukaz grep. Odprimo besedilno datoteko one.txt najprej s priljubljenim ukazom cat spodaj:



$mačkaone.txt





Najprej bomo v tej besedilni datoteki videli nekatere ujemajoče se besede z ukazom grep, kot je prikazano spodaj. Z besedo grep iščemo besedo mi v besedilni datoteki one.txt. Izhod prikazuje dve vrstici iz besedilne datoteke, v kateri imamo mi.

$oprijemmi en.txt



Tako bomo v tem primeru v nekaterih besedilnih datotekah prikazali vrstice pred in po ujemanju določene besede. Tako smo z isto besedilno datoteko one.txt ujemali besedo, medtem ko smo pred njo prikazali 3 vrstice, kot je prikazano spodaj. Zastava -B pomeni Pred. Izhod prikazuje le 2 vrstici pred določeno besedno vrstico, ker datoteka nima več vrstic pred vrstico določene besede. Prikazuje tudi tiste vrstice, ki vsebujejo to posebno besedo.

$oprijem–B3mi en.txt

Uporabimo isto ključno besedo iz te datoteke za prikaz treh vrstic po vrstici z besedo mi. Zastava -A predstavlja After. Izhod znova prikazuje samo 2 vrstici, ker v datoteki nima več vrstic.

$oprijem-TO3mi en.txt

Zato uporabimo novo ključno besedo za ujemanje in prikažemo vrstice ali vrstice pred in za vrstico, v kateri leži. Zato smo uporabili besedo lahko za ujemanje. Številke vrstic so v tem primeru enake. Tri vrstice za ujemajočo se besedo so lahko prikazane spodaj z ukazom grep.

$oprijem-TO3lahko one.txt

Izhodne oddaje si lahko ogledate pred vrsticami ujemajoče se besede z uporabo ključne besede can. Nasprotno pa prikazuje le dve vrstici pred vrstico ujemajoče se besede, ker pred njo ni več vrstic.

$oprijem–B3lahko one.txt

Primer 02: Uporaba '-A' in '-B'

Iz domačega imenika vzemimo drugo besedilno datoteko two.txt in njeno vsebino prikažemo s spodnjim ukazom cat.

$mačkatwo.txt

Prikazimo 5 vrstic pred besedo Most iz datoteke two.txt z ukazom grep. Izhod prikazuje 5 vrstic, preden vrstica vsebuje določeno besedo.

$oprijem–B5Večina two.txt

Ukaz grep to prikaže spodaj 5 besed za besedo Most iz besedilne datoteke two.txt.

$oprijem-TO5Večina two.txt

Spremenite ključno besedo, ki jo želite iskati. Kot ključno besedo bomo tokrat uporabili. Prikaz 2 vrstic pred besedo iz besedilne datoteke two.txt lahko izvedete s spodnjim ukazom grep. Izhod prikazuje dve vrstici za ključno besedo, ker je v datoteki dvakrat. Tako izhod vsebuje več kot 2 vrstici.

$oprijem–B2dva.txt

Zdaj za prikaz dveh vrstic datoteke two.txt za vrstico, ki vsebuje ključno besedo, lahko uporabite spodnji ukaz. Izhod znova prikaže več kot 2 vrstici.

$oprijem-TO2dva.txt

Primer 03: Uporaba '-C'

Druga zastavica -C je bila uporabljena za prikaz vrstic pred in za ujemajočo se besedo. Prikazimo vsebino datoteke one.txt z ukazom cat.

$mačkaone.txt

Družbo izberemo kot ključno besedo, ki se ji mora ujemati. Spodnji ukaz grep bo prikazal 2 vrstici pred in 2 vrstici za vrstico, ki vsebuje besedo družba. Izhod prikazuje eno vrstico pred določeno besedno vrstico in dve vrstici za njo.

$oprijem–C2družba one.txt

Poglejmo vsebino datoteke two.txt z uporabo spodnjega ukaza cat.

$mačkatwo.txt

V tej ilustraciji uporabljamo pesmi kot ključno besedo za ujemanje. Zato za to izvedite spodnji ukaz. Izhod prikazuje dve vrstici pred in dve vrstici za ujemajočo se besedo.

$oprijem–C2pesmi dve.txt

Za ujemanje uporabimo še eno ključno besedo iz datoteke two.txt. Tokrat porabljamo naravo kot ključno besedo. Zato poskusite spodnji ukaz, medtem ko uporabljate -C kot zastavico z naravo ključne besede iz datoteke two.txt. Tokrat ima izhod več kot dve vrstici. Ker datoteka večkrat vsebuje besedo narava, je to razlog za to. Ključna beseda narava, ki je prva, ima dve vrstici pred in dve vrstici za njo. Medtem ko se je drugi ujemal z isto ključno besedo, ima narava dve vrstici pred seboj, vendar za njo ni nobenih vrstic, ker je v zadnji vrstici datoteke.

$oprijem–C2pesmi dve.txt

Zaključek

Pri uporabi ukaza grep smo uspeli prikazati vrstice pred in za določeno besedo.