Syntaks
$ grep 'mønster1 \ | mønster2' filnavnEt regulært udtryk skrives altid i et enkelt tilbud. To navne er adskilt med tilbageslag og ændringsoperator. Kommandoen afsluttes med filnavnet. Mens grep rekursivt bruges, bruges bibliotek eller hele stien i stedet for et enkelt filnavn.
Forudsætning
I denne artikel lærer vi funktionerne i grep i søgning i flere mønstre og strenge. Til dette formål skal du have Linux-operativsystem kørende på din virtuelle boks. Du skal installere det på dit system. Efter konfiguration har du adgang til at bruge alle applikationer. Efter at have logget ind på brugeren ved at angive en adgangskode, skal du gå til terminal shell-kommandolinjen for at fortsætte.
Søg efter flere mønstre i en fil ved hjælp af Grep
Hvis vi vil søge i flere mønstre eller strenge i en bestemt fil, skal du bruge grep-funktionaliteten til at sortere i en fil ved hjælp af mere end et inputord i kommandoen. Vi bruger '\ |' operatører til adskillelse af to mønstre i en kommando.
$ grep 'teknisk \ | job' filea.txtKommandoen repræsenterer, hvordan grep fungerer. Begge de nævnte filer vil blive søgt i filea.txt. Søgte ord er fremhævet i hele teksten i output.
For at søge efter mere end to ord fortsætter vi med at tilføje dem på samme metode.
$ grep 'grafik \ | photoshop \ | plakater' fileb.txt
Søg i flere strenge ved at ignorere sag
For at forstå begrebet sagsfølsomhed i grep-funktion i Linux skal du overveje følgende eksempel. To kommandoer arbejder på grep. Den ene er med '-i' og den anden er uden. Dette eksempel viser forskellene mellem kommandoerne. Den første viser, at der vil blive søgt efter to ord i en given fil. Som angivet i kommandoen "Aqsa" starter det dog med hovedstad A. Således vil det ikke blive fremhævet, fordi denne tekst i en bestemt fil er med små bogstaver.
$ grep 'Aqsa \ | søster' fil20.txtDet vil kun tage ordet søster i betragtning, som kan ses i output.
I det andet eksempel har vi ignoreret store og små bogstaver ved hjælp af “-I” -flaget. Denne funktion søger i begge ord, og output fremhæves. Uanset om ordet 'Aqsa' er skrevet med store bogstaver eller ej, vil grep søge efter det samme match i tekst inde i en fil. Så begge kommandoer er nyttige på deres måder.
$ grep -I 'Aqsa \ | søster' fil20.txt
Optælling af flere matches i en fil
Tællefunktion hjælper med at tælle forekomsten af et ord eller ord i en bestemt fil. For eksempel, hvis du vil vide om de fejl, der opstår i systemet. Detaljen registreres i logfilen. For at bevare disse oplysninger i en bestemt mappe, skriver du stien til mapper. Dette eksempel viser, at der opstod 71 fejl i logfiler.
Søg efter nøjagtige matches i en fil
Hvis du vil finde et nøjagtigt match i filerne på dit system, skal du bruge “-w” -flaget til at sortere det nøjagtigt. Vi har citeret et simpelt og omfattende eksempel. I nedenstående eksempel kan du overveje at søge uden “-w”, denne kommando bringer begge ord som matchet med det givne input. Men med brugen af “-w” -flaget vil søgning være begrænset, da indtastningsord kun matcher den første streng. Det andet ord er ikke fremhævet, fordi “-w” muliggør nøjagtig matchning med mønsteret.
$ -iw 'hamna \ | house' fil21.txtHer bruges -I også til at fjerne store og små bogstaver i søgning efter tekst.
Som det ses på billedet, er resultaterne ikke de samme. Den første kommando bringer alle relaterede data med hele strenge, mens den anden kommando viser, hvordan nøjagtige data matcher gennem grep i søgning efter flere strenge.
Grep for mere end et mønster i en bestemt type filtypenavn
Søgning sker inden for alle filer. Det er op til dig, hvis du søger ved at angive filnavn. Det søger kun i bestemte filer. Men ved at give en filtypenavn søges der data i alle filerne med den samme udvidelse. Der er to forskellige eksempler til at skildre det relaterede resultat. I betragtning af det første eksempel tælles fejlfiler i alle filer i .log udvidelse. “-C” bruges til at tælle.
$ grep -c 'advarsel \ | fejl' / var / log / *.log
Denne kommando indebærer, at filerne vil blive søgt i alle filerne i .log udvidelse. Antallet af matches vises i output for bedre at demonstrere grep med den specifikke filtypenavn.
I det andet eksempel har vi brugt to ord i vores filer i Linux med udvidelsen af teksten. Alle data vises i form af tal. 0 angiver ingen matchende data, mens andet end 0 viser, at der findes et match.
$ grep -c 'aqsa \ | mit' / hjem / aqsayasin / *.txt
Søgning efter flere mønstre rekursivt i en fil
Som standard bruges den aktuelle mappe, hvis der ikke er nogen mappe, der er nævnt i kommandoen. Hvis du vil søge i den mappe, du selv vælger, skal du nævne det. “-R” operatør bruges til grep rekursivt./ home / aqsayasin / viser stien til filer, mens *.txt viser udvidelsen. Tekstfiler vil være målet for grep at søge rekursivt.
$ grep -R 'teknisk \ | gratis' / hjem / aqsayasin / *.txt
Den ønskede output er fremhævet i resultatet, der viser eksistensen af disse ord.
Konklusion
I den ovennævnte artikel har vi citeret forskellige eksempler for at gøre det lettere for en bruger at forstå funktionen af kommandoer til at søge i flere mønstre på Linux. Denne guide hjælper dig med at eskalere din eksisterende viden.