Visa linjer före och efter match via Grep

Show Lines Before After Match Via Grep



Grep har använts i stor utsträckning i Linux -system när man arbetar med vissa filer, söker efter ett specifikt mönster och många fler. Den här gången använder vi kommandot grep för att visa raderna före och efter det matchade nyckelordet som används i en viss fil. För detta ändamål kommer vi att använda flaggan -A, -B och, -C under hela vår handledning. Så du måste utföra varje steg för bättre förståelse. Se till att du har Ubuntu 20.04 Linux -system installerat.

Först måste du öppna din Linux-kommandoradsterminal för att börja arbeta med grep. Du befinner dig för närvarande i hemkatalogen för ditt Ubuntu-system direkt efter att kommandoradsterminalen har öppnats. Så försök att lista alla filer och mappar i hemkatalogen för ditt Linux -system med hjälp av kommandot ls nedan, så får du allt. Du kan se, vi har några textfiler och några mappar listade i den.







ls



Exempel 01: Använda '-A' och '-B'

Från de ovan visade textfilerna kommer vi att titta på några av dessa och försöka tillämpa grep-kommandot på dem. Låt oss öppna textfilen one.txt först med det populära kattkommandot nedan:



$kattone.txt





Vi kommer först att se några specifika ordmatchningar i denna textfil med kommandot grep enligt nedan. Vi söker efter ordet vi i textfilen one.txt med hjälp av grep -instruktion. Utdata visar två rader från textfilen med vi i dem.

$greppvi one.txt



Så i det här exemplet kommer vi att visa raderna före och efter den specifika ordmatchningen i vissa textfiler. Så med samma textfil one.txt har vi matchat ordet vi medan vi visade de 3 raderna före det enligt nedan. Flaggan -B står för Before. Utdata visar bara 2 rader före den specifika ordraden eftersom filen inte har fler rader före raden för ett specifikt ord. Det visar också de rader som har det specifika ordet som finns i dem.

$grepp–B3vi one.txt

Låt oss använda samma sökord som vi från den här filen för att visa de tre raderna efter raden som har ordet vi. Flaggan -A presenterar After. Utmatningen visar igen bara 2 rader eftersom den inte har fler rader i filen.

$grepp-TILL3vi one.txt

Så, låt oss använda ett nytt sökord som ska matchas och visa raderna eller raderna före och efter raden där det ligger. Så vi har använt ordet kan för att matchas. Linjenumren är desamma i det här fallet. De tre raderna efter det matchade ordet kan ha visats nedan med grep -kommandot.

$grepp-TILL3kan one.txt

Du kan se utdata före raderna i ett matchat ord med hjälp av nyckelordet kan. Däremot visar den bara två rader före raden i det matchade ordet eftersom det inte finns fler rader före det.

$grepp–B3kan one.txt

Exempel 02: Använda '-A' och '-B'

Låt oss ta en annan textfil, two.txt, från hemkatalogen och visa dess innehåll med hjälp av kommandot nedan.

$katttwo.txt

Låt oss visa 5 rader före ordet Most från filen two.txt med kommandot grep. Utdata visar 5 rader innan raden innehåller ett specifikt ord.

$grepp–B5De flesta two.txt

Kommandot grep för att visa de 5 raderna efter ordet Most från textfilen two.txt har angetts nedan.

$grepp-TILL5De flesta two.txt

Låt oss ändra nyckelordet som ska sökas. Vi kommer att använda det som ett nyckelord som ska matchas denna gång. Visa de två raderna före ordet från textfilen two.txt kan göras med hjälp av kommandot grep nedan. Utdata visar två rader för nyckelordet eftersom det kommer två gånger i filen. Således innehåller utdata mer än 2 rader.

$grepp–B2av two.txt

Nu visar de 2 raderna fil two.txt efter raden som innehåller nyckelordet kan göras med kommandot nedan. Utmatningen visar igen mer än 2 rader.

$grepp-TILL2av two.txt

Exempel 03: Använda ‘-C’

En annan flagga, -C har använts för att visa raderna före och efter det matchade ordet. Låt oss visa innehållet i filen one.txt med hjälp av kommandot cat.

$kattone.txt

Vi väljer samhället som ett nyckelord som ska matchas. Nedanstående grep -kommando visar de två raderna före och två rader efter raden som innehåller ordet samhälle i den. Utdata visar en rad före den specifika ordlinjen och 2 rader efter den.

$grepp–C2samhälle one.txt

Låt oss se innehållet i filen two.txt med kommandot nedan.

$katttwo.txt

I denna illustration använder vi dikter som ett nyckelord att matcha. Så kör kommandot nedan för detta. Utdata visar två rader före och två rader efter det matchade ordet.

$grepp–C2dikter två.txt

Låt oss använda ytterligare ett sökord från filen two.txt som ska matchas. Vi konsumerar naturen som ett nyckelord den här gången. Så, försök med kommandot nedan medan du använder -C som en flagga med nyckelordet nature från filen two.txt. Denna gång har utgången mer än två rader i utdata. Eftersom filen innehåller ordet natur mer än en gång, är det anledningen bakom den. Nyckelordet natur, som kommer först, har två rader före och två rader efter det. Medan det andra matchade samma sökord har naturen två rader före det, men det finns inga rader efter det eftersom det är på den sista raden i filen.

$grepp–C2dikter två.txt

Slutsats

Vi lyckas visa raderna före och efter det specifika ordet medan vi använder grep -instruktionen.