Som navnet på grep antyder, blir mønsteret du søker etter beskrevet med et vanlig uttrykk. Regulært uttrykk er en spesiell type streng som beskriver et mønster som skal matche, lokalisere og administrere. For å lære mer om grep og regulært uttrykk, sjekk ut med grep og egrep med regulært uttrykk.
For demonstrasjonsformål, ta en eksempeltekstfil. I dette eksemplet laster du ned GNU General Public License v3.0 tekstfil.
Grunnleggende søk
Den grunnleggende måten å bruke grep er å søke etter en grunnleggende streng.
Ta en titt på følgende grep-kommando. Det vil søke etter ordet “GNU” i tekstfilen.
$ grep "GNU" gpl-3.0.tekst
For å vise linjenummeret, bruk “-n” flagget.
$ grep -n “GNU” gpl-3.0.tekst
For å utføre et skiftesensitivt søk med grep, bruk “-i” -flagget.
$ grep -ni “gnu” gpl-3.0.tekst
Det kan hende at du ikke vil se søkekampene, men bare filnavnet der kampen skjedde i noen situasjoner. For å skrive ut bare filnavnet, bruk “-l” -flagget. Her angir stjernen å bruke alle tekstfilene i den gjeldende katalogen.
$ grep -l “gnu” *
Vi kan også føre utdataene fra andre kommandoer til grep.
$ katt gpl-3.0.txt | grep -n “GNU”
Vanlig uttrykk
Regex tilbyr en smart måte å finjustere søket på. Den har sine egne regler. Imidlertid implementerer forskjellige applikasjoner og programmeringsspråk regulært uttrykk annerledes. Her er et par eksempler som du kan bruke med grep.
For å definere at strengen skal bli funnet ved å starte en linje, bruk symbolet caret (^).
$ grep -n “^ GNU” gpl-3.0.tekst
For å definere at strengen skal finnes på slutten av en linje, bruk dollartegnet ($).
$ grep -n “til $” gpl-3.0.tekst
For å beskrive at det kan være et hvilket som helst tegn på et bestemt sted i mønsteret, bruk punkttegnet (.). For eksempel uttrykket “G.U ”er gyldig hvis det er tegn mellom“ G ”og“ U ”.
$ grep -n “G.U ”gpl-3.0.tekst
For å beskrive at det kan være et delsett med tegn på et bestemt sted i mønsteret, bruk parentesene ([]). For eksempel forteller uttrykket “t [wo] o” at kampen bare gjelder “to” og “too”.
$ grep -n “t [wo] o” gpl-3.0.tekst
Utvidet regulært uttrykk
Som navnet antyder, kan et utvidet regulært uttrykk gjøre mer komplekse ting enn grunnleggende regulære uttrykk. For å bruke utvidet regulært uttrykk med grep, må du bruke “-E” -flagget.
$ grep -nE For å søke etter to forskjellige strenger, bruk OR-operatorene (|).
$ grep -nE “GNU | Generelt | Lisens” gpl-3.0.tekst
Finne tekst i filer
Nå kommer hoveddelen. I stedet for å fortelle grep filen manuelt å utføre søket på, kan grep gjøre det automatisk. I den følgende kommandoen vil grep bruke alle tilgjengelige tekstfiler i gjeldende katalog for å søke i mønsteret.
$ grep * Hvis du vil grep for å utføre søket i en annen katalog, må du spesifisere stedet.
$ grep
Hvis det er mapper, utforsker grep dem ikke som standard. For å be grep om å søke rekursivt, bruk “-R” -flagget.
$ grep -nR
Grep GUI
Hvis du foretrekker å jobbe med GUI, men likevel ønsker å nyte greps funksjoner, så sjekk ut searchmonkey. Det er en front-end-løsning for grep. Pakken er tilgjengelig på nesten alle de store Linux-distribusjonene.
Finn tekst i filer ved hjelp av nano
GNU Nano er en enkel og kraftig teksteditor som kommer med hvilken som helst Linux-distro. Den har innebygde funksjoner for å søke etter tekst i en tekstfil.
Merk at i denne metoden må du åpne tekstfilen og søke manuelt. Det er mulig hvis det bare er en håndfull tekstfiler å jobbe med. Hvis det er mer, er bruk av grep det mest optimale valget.
Åpne tekstfilen i nano.
$ nano
For å søke etter en strengkamp, trykk “Ctrl + W”. Etter å ha skrevet strengen du vil søke etter, trykk “Enter”.
Finn tekst i filer ved hjelp av Vim
Vim er en kjent og kjent tekstredigerer. Det er kommandolinjekvivalenten til en moderne tekstredigerer. Vim kommer med mange avanserte funksjoner som plugins, makroer, automatisk utfylling, filtre osv.
I likhet med nano fungerer Vim med en enkelt fil om gangen. Hvis du har flere tekstfiler, er bruk av grep den mest optimale veien å gå.
For å søke i en tekstfil, må du først åpne den i Vim.
$ vim
Skriv inn følgende Vim-kommando og trykk "Enter".
$: /
Finn tekst i filer ved hjelp av GNOME Text Editor
GNOME Text Editor er teksteditoren som følger med GNOME-skrivebordet. Det er en forenklet tekstredigerer med alle de grunnleggende funksjonene du forventer. Det er et fint alternativ til kommandolinjeditorene.
I likhet med nano og vim gjelder samme forsiktighet for denne metoden. Hvis antall tekstfiler er stort, bør du holde deg til grep.
Åpne tekstfilen i Text Editor. Trykk på "Ctrl + F" for å få opp søkefeltet.
Finn tekst i filer ved hjelp av VS-kode
Visual Studio Code er en kraftig tekstredigerer med mange funksjoner. Det er optimalisert for at programmerere skal brukes som om det er en fullverdig IDE. Den er tilgjengelig på nesten alle de store Linux-distribusjonene.
Installer snap Studio-pakken for Visual Studio.
$ sudo snap installasjonskode --classic
Åpne tekstfilen i VS Code. Trykk “Ctrl + F” for å begynne å søke.
Siste tanker
Det er mange måter å søke tekst i filer på. Det er en enkel oppgave å mestre. Det anbefales på det sterkeste å mestre grep-kommandoen fordi den gir mest verdi når det gjelder effektivitet og brukervennlighet.
Hvis du foretrekker GUI, er det mange tekstredigerere å velge mellom. Enhver moderne teksteditor vil gi alternativet for tekstsøk.
Glad databehandling!