grep

Grep for flere mønstre eller strenge

Grep for flere mønstre eller strenge
Global Regular Expression Print eller Grep er et kraftfuldt værktøj, der bruges i Linux-operativsystem. Via grep kan du søge fra filer med forskellige mønstre eller strenge ved at anvende begrænsninger. Grep-funktionen tager en eller flere inputfiler til at søge i mapper eller underkataloger. For at søge efter adskillige mønstre bruger vi OR-operatoren. Denne operator bruges til at adskille de mønstre, der er skrevet i kommandoen. Ændringsoperatøren “|” bruges med tilbageslag. Syntaksen til søgning i forskellige regulære udtryk er som følger:

Syntaks

$ grep 'mønster1 \ | mønster2' filnavn

Et 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.txt

Kommandoen 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.txt

Det 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.txt

Her 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.

Open Source-porte med kommercielle spilmotorer
Gratis, open source og cross-platform spilmotorgendringer kan bruges til at spille gamle såvel som nogle af de temmelig nylige spiltitler. Denne artik...
Bedste kommandoliniespil til Linux
Kommandolinjen er ikke kun din største allierede, når du bruger Linux, den kan også være kilde til underholdning, fordi du kan bruge den til at spille...
Bedste apps til Gamepad Mapping til Linux
Hvis du kan lide at spille spil på Linux med en gamepad i stedet for et typisk tastatur- og musesystem, er der nogle nyttige apps til dig. Mange pc-sp...