Vis linjer før og etter kamp via grep

Vis linjer før og etter kamp via grep

GREP har blitt brukt mye i Linux -systemer når du jobber med noen filer, søker etter et spesifikt mønster, og mange flere. Denne gangen bruker vi GREP -kommandoen for å vise linjene før og etter det matchede nøkkelordet som brukes i en bestemt fil. For dette formålet vil vi bruke "-a", "-b" og, "-c" -flagget gjennom veiledningsveiledningen vår. Så du må utføre hvert trinn for bedre forståelse. Forsikre deg om at du har Ubuntu 20.04 Linux -system installert.

For det første må du åpne Linux-kommandolinjeterminalen for å begynne å jobbe med grep. Du er for øyeblikket på hjemmekatalogen til Ubuntu-systemet ditt rett etter at kommandolinjeterminalen er åpnet. Så prøv å liste opp alle filene og mappene i hjemmekatalogen til Linux -systemet ditt ved å bruke LS -kommandoen nedenfor, så får du alle. Du kan se, vi har noen tekstfiler og noen mapper oppført i den.

ls

Eksempel 01: Bruke '-a' og '-b'

Fra de ovennevnte tekstfilene vil vi se på noen av disse og prøve å bruke GREP-kommandoen på dem. La oss åpne tekstfilen “en.txt ”først ved å bruke den populære“ Cat ”-kommandoen som under:

$ katt en.tekst

Vi vil først se noen spesifikke ordkamper i denne tekstfilen ved å bruke GREP -kommandoen som nedenfor. Vi søker etter ordet "vi" i tekstfilen "en.txt ”ved hjelp av GREP -instruksjon. Utgangen viser to linjer fra tekstfilen som har "vi" i dem.

$ grep vi en.tekst

Så i dette eksemplet vil vi vise linjene før og etter den spesifikke ordkampen i noen tekstfiler. Så ved å bruke den samme tekstfilen “en.txt ”Vi har matchet ordet“ vi ”mens vi viste de 3 linjene før det som nedenfor. Flagget “-b” står for “før”. Utgangen viser bare to linjer før den spesifikke ordlinjen fordi filen ikke har flere linjer før linjen til et bestemt ord. Det viser også at linjene har det spesifikke ordet til stede i dem.

$ grep -b 3 vi en.tekst

La oss bruke det samme nøkkelordet “vi” fra denne filen for å vise de 3 linjene etter linjen som har ordet “vi”. Flagget “-a” presenterer “etter”. Utgangen viser igjen bare 2 linjer fordi den ikke har flere linjer i filen.

$ grep -a 3 vi en.tekst

Så la oss bruke et nytt nøkkelord for å bli matchet og vise linjene eller radene før og etter linjen der det ligger. Så vi har brukt ordet "kan" som skal matches. Linjetallene er de samme i dette tilfellet. De tre linjene etter at det matchede ordet "kan" har blitt vist nedenfor ved hjelp av GREP -kommandoen.

$ grep -a 3 kan en.tekst

Du kan se utdataene før linjene til et matchet ord ved hjelp av nøkkelordet "Can". I kontrast viser det bare to linjer før linjen med det matchede ordet fordi det ikke er flere linjer før det.

$ grep -b 3 kan en.tekst

Eksempel 02: Bruke '-a' og '-B'

La oss ta en annen tekstfil, “To.txt, ”fra hjemmekatalogen og viser innholdet ved hjelp av“ Cat ”-kommandoen.

$ katt to.tekst

La oss vise 5 linjer før ordet “mest” fra filen “to.txt ”ved hjelp av grep -kommandoen. Utgangen viser 5 linjer før linjen inneholder et bestemt ord.

$ grep -b 5 de fleste to.tekst

Grep -kommandoen for å vise de 5 linjene etter ordet “mest” fra tekstfilen “to.TXT ”er gitt nedenfor.

$ grep -a 5 de fleste to.tekst

La oss endre søkeordet som skal søkes. Vi vil bruke "av" som et nøkkelord som skal matches denne gangen. Vis de to linjene før ordet "av" fra tekstfilen "to.txt ”kan gjøres ved å bruke nedenfor GREP -kommandoen. Utgangen viser to linjer for nøkkelordet “av” fordi den kommer to ganger i filen. Dermed inneholder utgangen mer enn 2 linjer.

$ grep -b 2 av to.tekst

Viser nå de to fillinjene med filen “to.txt ”etter linjen som inneholder nøkkelordet“ av ”kan gjøres ved hjelp av kommandoen nedenfor. Utgangen viser igjen mer enn 2 linjer.

$ grep -a 2 av to.tekst

Eksempel 03: Bruke '-C'

Et annet flagg, “-c” har blitt brukt til å vise linjene før og etter det matchede ordet. La oss vise innholdet i filen “en.txt ”ved hjelp av CAT -kommandoen.

$ katt en.tekst

Vi velger "samfunn" som et nøkkelord som skal matches. Undergrep -kommandoen nedenfor vil vise de to linjene før og 2 linjer etter linjen som inneholder ordet “samfunn” i det. Utgangen viser en linje før den spesifikke ordlinjen og 2 linjer etter den.

$ grep -c 2 samfunn en.tekst

La oss se innholdet i filen “To.txt ”ved hjelp av CAT -kommandoen nedenfor.

$ katt to.tekst

I denne illustrasjonen bruker vi "dikt" som nøkkelord for å matche. Så utfør kommandoen nedenfor for dette. Utgangen viser to linjer før og to linjer etter det matchede ordet.

$ grep -c 2 dikt to.tekst

La oss bruke ett nøkkelord fra filen “To.txt ”som skal matches. Vi bruker "naturen" som et nøkkelord denne gangen. Så prøv kommandoen nedenfor mens du bruker "-c" som et flagg som har nøkkelordet "natur" fra filen "to.tekst". Denne gangen har utgangen mer enn to linjer i utgangen. Ettersom filen inneholder ordet "natur" mer enn en gang, er det grunnen bak det. Nøkkelordet "natur", som kommer først, har to linjer før og to linjer etter det. Mens det andre stemte overens med det samme nøkkelordet, har “natur” to linjer før det, men det er ingen linjer etter det fordi det er på den siste linjen i filen.

$ grep -c 2 dikt to.tekst

Konklusjon

Vi lykkes med å vise linjene før og etter det spesifikke ordet mens vi bruker GREP -instruksjonen.