Kommandoen grep giver adgang til grep -værktøjet, et kraftfuldt filbehandlingsværktøj, der bruges til at finde mønstre i tekstfiler. Det har mange praktiske anvendelsessager og er bestemt en af de mest brugte Linux -kommandoer. Denne vejledning illustrerer nogle enkle, men nyttige Linux grep-kommandoer, der har virkelige anvendelser.
Eksempelfil til demonstration
Vi har oprettet en referencefil for at hjælpe læsere med at forstå grep mere effektivt. Du kan oprette en kopi af denne fil ved at udstede følgende shell -kommando i din terminal.
skal jeg opgradere mit bundkort
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. Find tekst i filer
Hvis du vil søge efter tekstmønster i en fil, skal du blot køre grep efterfulgt af mønsternavnet. Angiv også navnet på den fil, der indeholder teksten.
grep 'email' test-file
Denne kommando viser linjen i vores test-fil der indeholder ordet e -mail . Du kan også søge efter den samme tekst i flere filer ved hjælp af grep.
grep 'example' /usr/share/dict/american-english /usr/share/dict/british-english
Ovenstående kommando viser alle forekomster af ordet eksempel i amerikansk engelsk og britisk engelsk ordbogsfiler.
2. Find præcise matchord
Linux grep -kommandoen illustreret i det tidligere eksempel viser også linjer med delvise matches. Brug kommandoen nedenfor, hvis du kun har brug for de nøjagtige forekomster af et ord.
grep -w 'string' test-file
Det -i eller --word-regexp mulighed for grep begrænser output kun til nøjagtige matches. Grep består af nogle yderligere flag, der også kan bruges med standardkommandoen.
Relateret: Hvordan fik Grep sit navn? Historien bag Greps skabelse
3. Ignorer sagsforskelle
Som standard søger grep efter mønstre i store og små bogstaver. Du vil dog muligvis deaktivere dette, hvis du ikke ved, i hvilket tilfælde mønsteret er på forhånd.
grep -i 'this' test-file
Brug -jeg eller --ignore-case mulighed for at slukke for følsomhed mellem store og små bogstaver.
4. Tæl antallet af mønstre
Det -c flag står for tælle . Det viser antallet af kampe, der blev fundet for et bestemt mønster. Administratorer kan bruge dette til at hente specifikke oplysninger om systemet.
Du kan rør kommandoen ps med grep for at tælle de processer, der tilhører den aktuelle bruger.
ps -ef | grep -c $USER
Følgende kommando viser antallet af MP3 filer, der findes i et bibliotek.
ls ~/Music | grep -c .mp3
5. Vis linjenumre, der indeholder kampe
Du vil måske finde de linjenumre, der indeholder et bestemt match. Brug -n eller --linjenummer mulighed for grep for at opnå dette.
cat /etc/passwd | grep -n rubaiat
Denne mulighed er især nyttig til fejlfinding af kildekoder og fejlfinding af logfiler. For at få vist alle tallene for linjer i ~/.vimrc der bruges til at konfigurere Vim -teksteditoren:
grep -n 'set' ~/.vimrc
6. Find filnavne ved hjælp af udvidelser
For at få en liste over alle MP3 filer, der findes i ~/Musik vejviser:
ls ~/Music/ | grep '.mp3'
Du kan udskifte .mp3 med andre udvidelser til lokalisering af bestemte filer. Følgende kommando viser alle php filer til stede i det aktuelle arbejdskatalog.
flytte alle apps til sd -kort
ls | grep '.php'
7. Find mønstre i komprimerede filer
Linux grep -kommando kan også finde mønstre inde i komprimerede filer. Du bliver nødt til at bruge zgrep kommando for at gøre dette, dog. Opret først et komprimeret arkiv af vores test-fil ved at skrive:
gzip test-file
Nu kan du søge efter tekst eller andre mønstre inde i det resulterende arkiv.
zgrep email test-file.gz
8. Find e -mail -adresser
Administratorer kan også angive e -mail -adresser fra tekstfiler ved hjælp af Linux grep -kommandoen. Følgende eksempel gør dette ved at søge efter et regulært udtryksmønster.
grep '^[a-zA-Z0-9]+@[a-zA-Z0-9]+.[a-z]{2,}' test-file
Du kan finde regelmæssige udtryk for at udføre lignende job, eller du kan oprette dem selv, hvis du ved, hvordan de fungerer.
9. Find telefonnumre ved hjælp af Grep
Du kan bruge grep regulære udtryk til at filtrere telefonnumre fra en tekstfil. Bemærk, at du skal justere mønsteret, så det matcher den type telefonnumre, du har brug for.
grep '(([0-9]{3})|[0-9]{3})[ -]?[0-9]{3}[ -]?[0-9]{4}' test-file
Den førnævnte kommando filtrerer ti-cifrede amerikanske telefonnumre ud.
10. Find webadresser fra kildefiler
Vi kan udnytte greps kraft til at liste URL'er, der findes i tekstfiler. Nedenstående kommando udskriver alle de webadresser, der findes i test-fil .
grep -E '^(http|https|ftp):[/]{2}([a-zA-Z0-9-.]+.[a-zA-Z]{2,4})' test-file
Vi bruger igen -OG mulighed for udvidede regulære udtryk. Du kan også bruge egrep kommando for at undgå at tilføje dette.
egrep '^(http|https|ftp):[/]{2}([a-zA-Z0-9-.]+.[a-zA-Z]{2,4})' test-file
Beherske Linux Grep -kommandoen
Vi har præsenteret flere nyttige eksempler på Linux grep-kommandoen til håndtering af virkelige problemer. Selvom disse eksempler illustrerer greps kraft til tekstbehandling, skal du mestre regulære udtryk, hvis du vil være superproduktiv med grep.
Nogle gange støder Linux -brugere på visse situationer, hvor de ikke kan huske de forskellige muligheder i forbindelse med en kommando. Forhåbentlig giver Linux-operativsystemet dig måder at få kommandolinjehjælp til næsten alle systemværktøjer.
Del Del Tweet E -mail 7 måder at få kommandolinjehjælp på LinuxAlle de vigtige kommandoer til at lære om Linux-kommandoer fra kommandolinjen
Læs Næste Relaterede emner- Linux
- Linux
- Linux -kommandoer
Rubaiat er en CS grad med en stærk passion for open source. Udover at være Unix -veteran, er han også til netværkssikkerhed, kryptografi og funktionel programmering. Han er en ivrig samler af brugte bøger og har en uendelig beundring for klassisk rock.
Mere fra Rubaiat HossainAbonner på vores nyhedsbrev
Tilmeld dig vores nyhedsbrev for at få tekniske tips, anmeldelser, gratis e -bøger og eksklusive tilbud!
hvordan du gendanner din facebook -kontoKlik her for at abonnere