Grep har använts i stor utsträckning i Linux-system när man arbetar med vissa filer, söker efter något 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 någon specifik fil. För detta ändamål kommer vi att använda flaggan “-A”, “-B” och “-C” genom 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ör det första måste du öppna din Linux-kommandoradsterminal för att börja arbeta med grep. Du är 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 ditt Linux-systemkatalog 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 ”en.txt ”först med det populära“ katt ”-kommandot som nedan:
$ katt en.Text
Vi kommer först se några specifika ordmatchningar i den här textfilen med kommandot grep enligt nedan. Vi söker efter ordet ”vi” i textfilen ”en.txt ”med grep-instruktion. Utgången visar två rader från textfilen med "vi" i dem.
$ grep vi en.Text
Så i det här exemplet kommer vi att visa raderna före och efter det specifika ordmatchningen i vissa textfiler. Så med samma textfil "en.txt ”vi har matchat ordet“ vi ”medan vi visar de tre raderna före det som nedan. Flaggan "-B" står för "Före". Utgången visar bara två 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 närvarande.
$ grep -B 3 vi en.Text
Låt oss använda samma nyckelord "vi" från den här filen för att visa de tre raderna efter raden som har ordet "vi". Flaggan "-A" presenterar "Efter". Utgången visar återigen bara två rader eftersom den inte har fler rader i filen.
$ grep -A 3 vi en.Text
Så, låt oss använda ett nytt nyckelord för att matchas och visa raderna eller raderna före och efter raden där det ligger. Så vi har använt ordet ”burk” för att matchas. Linjenumren är desamma i det här fallet. De tre raderna efter det matchade ordet ”kan” har visats nedan med kommandot grep.
$ grep -A 3 kan en.Text
Du kan se utdata visas före raderna i ett matchat ord med hjälp av nyckelordet "kan". Däremot visar det bara två rader före raden för det matchade ordet eftersom det inte finns fler rader före det.
$ grep -B 3 kan en.Text
Exempel 02: Använda '-A' och '-B'
Låt oss ta en ny textfil, ”två.txt, ”från hemkatalogen och visa dess innehåll med hjälp av kommandot nedan“ cat ”.
$ katt två.Text
Låt oss visa 5 rader före ordet "Most" från filen "two.txt ”med grep-kommandot. Utgången visar fem rader innan raden innehåller ett specifikt ord.
$ grep -B 5 De flesta två.Text
Grep-kommandot till visar de 5 raderna efter ordet "Most" från textfilen "two.txt ”har angivits nedan.
$ grep -A 5 De flesta två.Text
Låt oss ändra nyckelordet som ska sökas. Vi kommer att använda ”av” som nyckelord för att matchas den här gången. Visa de två raderna före ordet ”av” från textfilen ”två.txt ”kan göras med hjälp av nedanstående grep-kommando. Utgången visar två rader för nyckelordet ”av” eftersom det kommer två gånger i filen. Således innehåller utgången mer än två rader.
$ grep -B 2 av två.Text
Visar nu de två raderna med fil ”två.txt ”efter raden som innehåller nyckelordet“ av ”kan du göra med kommandot nedan. Utgången visar igen mer än två rader.
$ grep -A 2 av två.Text
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 ”en.txt ”med hjälp av kattkommandot.
$ katt en.Text
Vi väljer ”samhälle” som ett nyckelord som ska matchas. Nedanstående grep-kommando visar de två raderna före och 2 raderna efter raden som innehåller ordet "samhälle" i den. Utgången visar en rad före den specifika ordraden och två rader efter den.
$ grep -C 2 samhälle ett.Text
Låt oss se innehållet i filen ”två.txt ”med hjälp av kattkommandot nedan.
$ katt två.Text
I denna illustration använder vi ”dikter” som ett nyckelord för att matcha. Så kör följande kommando för detta. Utgången visar två rader före och två rader efter det matchade ordet.
$ grep -C 2 dikter två.Text
Låt oss använda ytterligare ett nyckelord från filen ”två.txt ”som ska matchas. Vi konsumerar ”natur” som nyckelord den här gången. Så prova kommandot nedan medan du använder "-C" som en flagga med nyckelordet "natur" från filen "två.Text". Den här gången har utgången mer än två rader i utgången. Eftersom filen innehåller ordet ”natur” mer än en gång, är det anledningen till det. Nyckelordet ”natur”, som kommer först, har två rader före och två rader efter det. Medan det andra matchade samma nyckelord har "natur" två rader före det, men det finns inga rader efter det eftersom det är vid den sista raden i filen.
$ grep -C 2 dikter två.Text
Slutsats
Vi lyckas visa raderna före och efter det specifika ordet medan vi använder grep-instruktionen.