grep

Visa linjer före och efter match via Grep

Visa linjer före och efter match via Grep

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.

Mus Så här ändrar du inställningar för mus och pekplatta med Xinput i Linux
Så här ändrar du inställningar för mus och pekplatta med Xinput i Linux
De flesta Linux-distributioner levereras med "libinput" -bibliotek som standard för att hantera inmatningshändelser i ett system. Den kan bearbeta inm...
Mus Omforma dina musknappar på olika sätt för olika program med X-Mouse Button Control
Omforma dina musknappar på olika sätt för olika program med X-Mouse Button Control
Kanske behöver du ett verktyg som kan göra att musens kontroll ändras med alla applikationer som du använder. Om så är fallet kan du prova en ansökan ...
Mus Microsoft Sculpt Touch Wireless Mouse Review
Microsoft Sculpt Touch Wireless Mouse Review
Jag har nyligen läst om Microsoft Sculpt Touch trådlös mus och bestämde mig för att köpa den. Efter att ha använt den ett tag bestämde jag mig för att...