grep

Grep Command i Linux

Grep Command i Linux
Grep-kommandot (global regular expression print) är det mest kraftfulla och regelbundet använda Linux-kommandoradsverktyget. Med Grep kan du söka efter användbar information genom att ange sökkriterier. Den söker efter ett visst uttrycksmönster i en angiven fil. När den hittar en matchning skriver den ut alla rader i en fil som matchade det angivna mönstret. Det kommer till nytta när du måste filtrera igenom stora loggfiler.

I den här artikeln kommer vi att förklara användningen av grep-verktyget med olika exempel. Vi kommer att använda Debian 10 för att förklara kommandon och metoder som nämns i den här artikeln.

Installerar Grep

Grep kommer installerat i de flesta Linux-distributioner. Men om det saknas i ditt system kan du installera det med följande metod i Terminal:

$ sudo apt-get install grep

Använda Grep

Här är den grundläggande syntaxen för grep-kommandot. Det börjar med grep följt av några alternativ och sökkriterier och slutar sedan med filnamnet.

$ grep [alternativ] MÖNSTER [FIL ...]

Sök efter filer

För att söka efter ett filnamn i en katalog som innehåller en specifik sträng i den kan du använda grep på följande sätt:

$ ls -l | grep -i “sträng

Till exempel för att söka efter ett filnamn som innehåller en sträng “testa”, Skulle kommandot vara:

$ ls -l | grep -i test

Detta kommando listar alla filer som innehåller strängen “testa”.

Sök efter en sträng i en fil

För att söka efter en sträng i en viss fil kan du använda följande kommandosyntax:

$ grep "sträng" filnamn

Till exempel för att söka efter en sträng “testa”I en fil med namnet testfil1, vi har använt följande kommando:

$ grep “anställd” testfil1

Ovanstående utdata har returnerat meningen från testfil1 som innehåller strängen “anställd”.

Sök efter en sträng i flera filer

För att söka efter en sträng i flera filer kan du använda följande kommandosyntax:

$ grep “string” filnamn1 filnamn2

För att till exempel söka efter en sträng “anställd” i våra två filer testfile1 och testfile2 har vi använt följande kommando:

$ grep “anställd” testfil1 testfil2

Ovanstående kommando kommer att lista alla rader som innehåller strängen "anställd" från både filer testfile1 och testfile2.

Du kan också använda ett jokertecken om alla filnamn börjar med samma text.

$ grep “string” filnamn *

Som om vi tar exemplet ovan där våra filnamn var testfil1 och testfil2 , kommandot skulle vara:

$ grep "anställd" testfil *

Sök efter en sträng i en fil genom att ignorera fallet med strängen

Oftast har du stött på det när du söker efter något med grep men inte får utdata. Detta händer på grund av att ett ärende inte matchar när du söker efter en sträng. Som i vårt exempel, om vi felaktigt använder ”Anställd" istället för "anställd”, Kommer det att returnera noll eftersom vår fil innehåller strängen“anställd”Med små bokstäver.

Du kan be grep att ignorera fallet med söksträng genom att använda -i-flaggan efter grep enligt följande:

$ grep -i "sträng" filnamn

Genom att använda -i-flaggan utför kommandot den skiftlägeskänsliga sökningen och returnerar alla rader som innehåller strängen “anställd”I den utan att ta hänsyn till bokstäverna är med versaler eller versaler.

Sök med hjälp av det reguljära uttrycket

Om det används korrekt är det reguljära uttrycket en mycket effektiv funktion i grep. Med kommandot Grep kan du definiera ett reguljärt uttryck med ett start- och slutord. Genom att göra det behöver du inte skriva hela raden med grep-kommandot. Följande syntax kan användas för detta ändamål.

$ grep “startord.* endingKeyword ”filnamn

För att till exempel söka efter en rad i en fil med namnet testfil1 som börjar med strängen "detta" och slutar med strängen "data" har vi använt följande kommando:

$ grep “detta.* data ”testfil1

Det kommer att skriva ut hela raden från testfil1 som innehåller uttrycket (startord "detta" och slutordet "data").

Skriv ut ett visst antal rader efter / före söksträngen

Du kan också visa det specifika antalet rader i en fil före / efter en strängmatchning tillsammans med den matchade strängen i sig. Följande syntax kan användas för detta ändamål:

$ grep -A "Sträng" filnamn

Det visar N antal rader efter att strängen har matchats i den angivna filen inklusive den matchade strängen.

Till exempel är detta vår exempelfil med namnet testfil2.

Följande kommando matar ut den matchade raden som innehåller strängen “anställd”, Tillsammans med de två raderna efter det.

$ grep -A 2 -i "anställd" testfil2

På samma sätt, för att visa N antal rader före den matchade strängen i en specifik fil, använd följande syntax:

$ grep -B "Sträng" filnamn

För att visa N antal rader runt strängen i en specifik fil, använd följande syntax:

$ grep -C "Sträng" filnamn

Markera sökningen

Grep som standard skriv ut matchade rader men visar inte vilken del av raden som matchas. Om du använder -color-alternativet med grep, kommer det att visas var bearbetningssträngarna visas i din fil. Grep använder som standard den röda färgen för att markera.

Följande syntax kan användas för detta ändamål:

$ grep "sträng" filnamn - färg

Räknar antalet matchningar

Om du vill räkna hur många gånger ett visst ord visas i en viss fil kan du använda grep med -c-alternativet. Det returnerar bara antalet matchningar snarare än själva matcherna. Följande syntax kan användas för detta ändamål:

$ grep -c "sträng" filnamn

Det här är vår exempelfil som ser ut:

Följande är ett exempel på ett kommando som returnerade antalet gånger ordet fil dök upp i en fil med namnet testfil3.

Inverterad sökning

Ibland vill du utföra en omvänd sökning som visar alla rader utom de som matchade ingången. För att göra det, använd helt enkelt flaggan -v följt av grep:

$ grep -v "string" filnamn

Till exempel för att visa alla rader i en fil testfil3 som inte innehåller ordet "konto" i dem, har vi använt följande kommando:

$ grep -v "konto" testfil3

Använda Grep med andra kommandon

Grep kan också användas för att filtrera bort önskat resultat från olika kommandos utdata. Till exempel frånapt-installerad lista ” kommandoutgång, du vill bara hitta paketen som installerades automatiskt, du kan filtrera ut resultatet med grep enligt följande:

$ apt - installerad lista | grep automatisk

På samma sätt ger lscpu detaljerad information om CPU: n. Om du bara är intresserad av informationen om CPU-arkitekturen kan du filtrera bort den med följande kommando:

$ lscpu | grep Arkitektur

I den här artikeln har vi beskrivit några exempel som hjälper dig att förstå grep-kommandona och dess användning under olika förhållanden. Att ha ett starkt grepp om grep-kommandot kan spara mycket tid om du behöver titta på stora konfigurationer eller loggfiler och skumma användbar information genom dem.

Mus Mus vänsterklicka på knappen fungerar inte på Windows 10
Mus vänsterklicka på knappen fungerar inte på Windows 10
Om du använder en dedikerad mus med din bärbara dator eller stationära dator men musens vänsterklick-knapp fungerar inte på Windows 10/8/7 av någon an...
Mus Markören hoppar eller rör sig slumpmässigt när du skriver in Windows 10
Markören hoppar eller rör sig slumpmässigt när du skriver in Windows 10
Om du upptäcker att muspekaren hoppar eller rör sig på egen hand, automatiskt, slumpmässigt när du skriver in Windows-bärbar dator eller dator, kan nå...
Mus Så här vänder du mus- och styrplattans rullningsriktning i Windows 10
Så här vänder du mus- och styrplattans rullningsriktning i Windows 10
Mus och Pekplattas gör inte bara datoranvändning lättare men effektivare och mindre tidskrävande. Vi kan inte föreställa oss ett liv utan dessa enhete...