Grep -kommandoen gir tilgang til grep -verktøyet, et kraftig filbehandlingsverktøy som brukes til å finne mønstre i tekstfiler. Den har mange praktiske bruksområder og er absolutt en av de mest brukte Linux -kommandoene. Denne veiledningen illustrerer noen enkle, men nyttige Linux grep-kommandoer som har virkelige bruksområder.
Eksempelfil for demonstrasjon
Vi har laget en referansefil for å hjelpe leserne til å forstå grep mer effektivt. Du kan lage en kopi av denne filen ved å utstede følgende shell -kommando i terminalen.
sett statisk ip på bringebær pi
cat <> test-file
This is a simple text file that contains
multiple strings as well as some telephone numbers
(555) 555-1234 (567) 666-2345
and email plus web addresses
john@doe.com
https://google.com
ftp://mywebserver.com
END
1. Finn tekst i filer
For å søke etter tekstmønster i en fil, bare kjør grep etterfulgt av mønsternavnet. Angi også navnet på filen som inneholder teksten.
grep 'email' test-file
Denne kommandoen viser linjen i vår testfil som inneholder ordet e -post . Du kan også søke etter samme tekst i flere filer ved hjelp av grep.
grep 'example' /usr/share/dict/american-english /usr/share/dict/british-english
Kommandoen ovenfor viser alle forekomster av ordet eksempel i amerikansk engelsk og Britisk engelsk ordbokfiler.
2. Finn ord for eksakt samsvar
Linux grep -kommandoen illustrert i det tidligere eksemplet viser også linjer med delvise treff. Bruk kommandoen nedenfor hvis du bare trenger den eksakte forekomsten av et ord.
grep -w 'string' test-file
De -i eller --word-regexp alternativet grep begrenser utdataene til eksakte treff. Grep består av noen ekstra flagg som også kan brukes med standardkommandoen.
Relatert: Hvordan fikk Grep navnet sitt? Historien bak Greps skapelse
3. Ignorer saksdifferensjoner
Som standard søker grep etter mønstre på en bokstavsensitiv måte. Du kan imidlertid slå av dette hvis du ikke vet i hvilket tilfelle mønsteret er på forhånd.
grep -i 'this' test-file
Bruke -Jeg eller --ignore-case alternativ for å slå av bokstavfølsomhet.
4. Tell antall mønstre
De -c flagget står for telle . Den viser antall treff som ble funnet for et bestemt mønster. Administratorer kan bruke dette til å hente spesifikk informasjon om systemet.
Du kan rør kommandoen ps med grep for å telle prosessene som tilhører den nåværende brukeren.
ps -ef | grep -c $USER
Følgende kommando viser antall MP3 filer som finnes i en katalog.
ls ~/Music | grep -c .mp3
5. Vis linjenumre som inneholder treff
Det kan være lurt å finne linjenumrene som inneholder en viss treff. Bruke -n eller --linjenummer alternativet grep for å oppnå dette.
cat /etc/passwd | grep -n rubaiat
Dette alternativet er spesielt nyttig for feilsøking av kildekoder og feilsøking av loggfiler. For å vise alle tallene for linjer i ~/.vimrc som brukes til å konfigurere Vim -tekstredigereren:
grep -n 'set' ~/.vimrc
6. Finn filnavn ved hjelp av utvidelser
For å få en liste over alle MP3 filer som finnes i ~/Musikk katalog:
ls ~/Music/ | grep '.mp3'
Du kan bytte ut .mp3 med andre utvidelser for å finne bestemte filer. Følgende kommando viser alle php filer som finnes i den nåværende arbeidskatalogen.
er ubuntu raskere enn windows 10
ls | grep '.php'
7. Finn mønstre i komprimerte filer
Linux grep -kommandoen kan også finne mønstre i komprimerte filer. Du må bruke zgrep kommando for å gjøre dette, men. Lag først et komprimert arkiv av våre testfil ved å skrive:
gzip test-file
Nå kan du søke etter tekst eller andre mønstre i det resulterende arkivet.
zgrep email test-file.gz
8. Finn e -postadresser
Administratorer kan også vise e -postadresser fra tekstfiler ved hjelp av Linux grep -kommandoen. Følgende eksempel gjør dette ved å søke etter et vanlig uttrykksmønster.
grep '^[a-zA-Z0-9]+@[a-zA-Z0-9]+.[a-z]{2,}' test-file
Du kan finne vanlige uttrykk for å gjøre lignende jobber, eller du kan lage dem selv hvis du vet hvordan de fungerer.
9. Finn telefonnumre ved hjelp av Grep
Du kan bruke grep regulære uttrykk for å filtrere ut telefonnumre fra en tekstfil. Vær oppmerksom på at du må justere mønsteret for å matche typen telefonnumre du trenger.
grep '(([0-9]{3})|[0-9]{3})[ -]?[0-9]{3}[ -]?[0-9]{4}' test-file
Den ovennevnte kommandoen filtrerer bort ti-sifrede amerikanske telefonnumre.
10. Finn nettadresser fra kildefiler
Vi kan dra nytte av grep for å liste opp URL -er som finnes i tekstfiler. Kommandoen nedenfor skriver ut alle nettadressene som finnes i testfil .
grep -E '^(http|https|ftp):[/]{2}([a-zA-Z0-9-.]+.[a-zA-Z]{2,4})' test-file
Vi bruker igjen -OG alternativ for utvidede regulære uttrykk. Du kan også bruke egrep kommando for å unngå å legge dette til.
egrep '^(http|https|ftp):[/]{2}([a-zA-Z0-9-.]+.[a-zA-Z]{2,4})' test-file
Beherske Linux Grep -kommandoen
Vi har presentert flere nyttige eksempler på Linux grep-kommandoen for å takle virkelige problemer. Selv om disse eksemplene illustrerer greps kraft for tekstbehandling, må du mestre vanlige uttrykk hvis du vil være superproduktiv med grep.
Noen ganger støter Linux -brukere på visse situasjoner der de ikke kan huske de forskjellige alternativene knyttet til en kommando. Forhåpentligvis gir Linux-operativsystemet deg måter å få kommandolinjehjelp for nesten alle systemverktøy.
Dele Dele kvitring E -post 7 måter å få kommandolinjehjelp på LinuxAlle viktige kommandoer for å lære om Linux-kommandoer fra kommandolinjen
Les neste Relaterte temaer- Linux
- Linux
- Linux -kommandoer
Rubaiat er en CS grad med en sterk lidenskap for åpen kildekode. Bortsett fra å være Unix -veteran, er han også interessert i nettverkssikkerhet, kryptografi og funksjonell programmering. Han er en ivrig samler av brukte bøker og har en uendelig beundring for klassisk rock.
Mer fra Rubaiat HossainAbonner på vårt nyhetsbrev
Bli med i vårt nyhetsbrev for tekniske tips, anmeldelser, gratis ebøker og eksklusive tilbud!
hva du skal gjøre hvis facebooken din er hacketKlikk her for å abonnere