grep

Grep för flera mönster eller strängar

Grep för flera mönster eller strängar
Global Regular Expression Print eller Grep är ett kraftfullt verktyg som används i Linux-operativsystem. Genom grep kan du söka från filer med olika mönster eller strängar genom att använda begränsningar. Grep-funktionen tar en eller flera inmatningsfiler för att söka i kataloger eller underkataloger. För att söka efter många mönster använder vi OR-operatören. Denna operatör används för att separera de mönster som skrivs i kommandot. Ändringsoperatören “|” används med backslash. Syntaksen för att söka i olika reguljära uttryck är som följer:

Syntax

$ grep 'mönster1 \ | mönster2' filnamn

Ett regelbundet uttryck skrivs alltid i ett enda citat. Två namn är separerade med backslash och ändringsoperator. Kommandot avslutas med filnamnet. Under grep rekursiv används katalog eller hela sökvägen istället för ett enda filnamn.

Nödvändig förutsättning

I den här artikeln lär vi oss grep-funktionaliteten när vi söker efter flera mönster och strängar. För detta ändamål måste du ha Linux-operativsystem som körs på din virtuella låda. Du måste installera det på ditt system. Efter konfigurationen har du tillgång till att använda alla applikationer. Efter att ha loggat in till användaren genom att ange ett lösenord, gå till kommandoraden för terminalskalet för att fortsätta.

Sök med flera mönster i en fil med Grep

Om vi ​​vill söka i flera mönster eller strängar i en viss fil, använd grep-funktionaliteten för att sortera i en fil med hjälp av mer än ett inmatningsord i kommandot. Vi använder '\ |' operatörer för att separera två mönster i ett kommando.

$ grep 'teknisk \ | jobb' filea.Text

Kommandot representerar hur grep fungerar. Båda de nämnda filerna kommer att sökas i filea.Text. Sökta ord är markerade i hela texten i utdata.

För att söka efter mer än två ord fortsätter vi att lägga till dem på samma sätt.

$ grep 'grafik \ | photoshop \ | affischer' fileb.Text

Sök i flera strängar genom att ignorera fall

För att förstå begreppet skiftlägeskänslighet i grep-funktion i Linux, överväga följande exempel. Två kommandon fungerar på grep. Den ena är med '-i' och den andra är utan. Detta exempel visar skillnaderna mellan kommandona. Den första visar att två ord kommer att sökas i en viss fil. Men som anges i kommandot "Aqsa" börjar det med stora bokstäver A. Således kommer det inte att markeras eftersom denna text är i gemener i en viss fil.

$ grep 'Aqsa \ | syster' fil20.Text

Det kommer bara att ta hänsyn till ordet syster, som kommer att ses i produktionen.

I det andra exemplet har vi ignorerat skiftlägeskänslighet genom att använda “-I” -flaggan. Denna funktion söker i båda orden och utdata markeras. Oavsett om ordet 'Aqsa' är skrivet med stora bokstäver eller inte, kommer grep att söka efter samma matchning i texten i en fil. Så båda kommandona är till hjälp på deras sätt.

$ grep -I 'Aqsa \ | syster' fil20.Text

Räkna flera matchningar i en fil

Räkna-funktionen hjälper till att räkna förekomsten av ett ord eller ord i en viss fil. Till exempel om du vill veta om felen som uppstår i systemet. Detaljen registreras i loggfilen. För att behålla denna information i en specifik mapp skriver du sökvägen till mappar. Det här exemplet visar att 71 fel inträffade i loggfiler.

Sök efter exakta matchningar i en fil

Om du vill hitta en exakt matchning i filerna i ditt system måste du använda flaggan "-w" för att sortera den exakt. Vi har citerat ett enkelt och omfattande exempel. I exemplet nedan, överväg att söka utan “-w”, det här kommandot ger båda orden som matchas med den angivna ingången. Men med "-w" -flaggan kommer sökning att begränsas eftersom inmatningsord bara matchar den första strängen. Det andra ordet är inte markerat eftersom “-w” möjliggör korrekt matchning med mönstret.

$ -iw 'hamna \ | house' fil21.Text

Här -Jag används också för att ta bort skiftlägeskänslighet vid sökning av text.

Som framgår av bilden är resultaten inte desamma. Det första kommandot ger alla relaterade data med hela strängar, medan det andra kommandot visar hur exakta data matchar genom grep när de söker efter flera strängar.

Grep för mer än ett mönster i en specifik filtilläggstyp

Sökning görs inom alla filer. Det är upp till dig om du söker genom att ange filnamn. Den söker bara i specifika filer. Men genom att tillhandahålla ett filtillägg kommer data att sökas igenom alla filer med samma tillägg. Det finns två olika exempel som visar det relaterade resultatet. Med tanke på det första exemplet kommer felfiler att räknas i alla filer i .loggförlängning. ”-C” används för att räkna.

$ grep -c 'varning \ | fel' / var / log / *.logga

Detta kommando innebär att filerna kommer att sökas i alla filer i .loggförlängning. Antalet matchningar visas i utdata för att bättre visa grep med det specifika filtillägget.

I det andra exemplet har vi använt två ord i våra filer i Linux med förlängningen av texten. All data kommer att visas i form av siffror. 0 anger ingen matchande data, medan annat än 0 visar att en matchning existerar.

$ grep -c 'aqsa \ | my' / home / aqsayasin / *.Text

Söka efter flera mönster rekursivt i en fil

Som standard används den aktuella katalogen om det inte finns någon katalog som nämns i kommandot. Om du vill söka i den katalog du själv väljer måste du nämna det. Operatorn “-r” används för grep rekursivt./ home / aqsayasin / visar filvägen, medan *.txt visar förlängningen. Textfiler är målet för grep att söka rekursivt.

$ grep -R 'teknisk \ | gratis' / hem / aqsayasin / *.Text

Den önskade utgången markeras i resultatet och visar förekomsten av dessa ord.

Slutsats

I artikeln som nämnts ovan har vi citerat olika exempel för att göra det lättare för en användare att förstå hur kommandon fungerar för att söka i flera mönster på Linux. Den här guiden hjälper dig att öka din befintliga kunskap.

OpenTTD-handledning
OpenTTD är ett av de mest populära affärssimuleringsspelen där ute. I det här spelet måste du skapa en underbar transportaffär. Du kommer dock att bör...
SuperTuxKart för Linux
SuperTuxKart är en fantastisk titel som är utformad för att ge dig Mario Kart-upplevelsen gratis på ditt Linux-system. Det är ganska utmanande och rol...
Battle for Wesnoth Tutorial
Slaget om Wesnoth är ett av de mest populära open source-strategispel som du kan spela just nu. Det här spelet har inte bara utvecklats under mycket l...