grep

Linux grep-kommando

Linux grep-kommando
Grep är ett av de smidigaste verktygen du kan ha till ditt förfogande. Detta kommandoradsverktyg utför en sökning i klartextdatauppsättningar. Grep är faktiskt en förkortning för “globalt söka a regular expression och sidrint ”. Grep började sin resa som en del av UNIX-familjen. Med tiden är det nu tillgängligt för alla populära plattformar som Linux, Mac, BSD och till och med Windows!

Har du använt grep tidigare? För det mesta kan det grundläggande grep-tricket göra det mesta av jobbet. Grep erbjuder dock massor av sätt att utföra sökningen och finjustera utdata till en mer användbar version. I den här artikeln, låt oss kolla in användningen av kommandot grep.

Grep-användning

Verifierar existensen

Om du kör någon form av Linux-distro har du redan grep installerat. Kör följande kommando i terminalen.

grep --version

Detta kommando används för att visa versionen av för närvarande installerad grep. Nu behöver vi en demofil. I mitt fall genererar jag en textfil som innehåller alla installerade paket på mitt system.

Grunderna

Den grundläggande användningen av grep följer följande struktur.

grep

Eller för att förstå det lättare, använd den här.

grep -e -f

I det här fallet kommer grep att söka i filen och skriva ut alla rader som inkluderar mönstret (sökord).

grep python ~ / Desktop / PackageList.Text

Grep sökte i filen "PackageList.txt ”Jag genererade tidigare och skrev ut alla rader som innehåller“ python ”.

Samma operation kan utföras på ett annat sätt. Kolla in följande exempel.

cat ~ / Desktop / PackageList.txt | grep python

Här skickade jag innehållet i filen "PackageList" med kommandot "cat".txt ”till grep. Med hjälp av utdata från katt utförde grep sökningen och skrev ut raderna som innehåller söktermen.

Nu kommer en rolig sak. Du kan bokstavligen stapla flera grep-kommandon precis så.

cat ~ / Desktop / PackageList.txt | grep - | grep p | grep python

Den första grep filtrerar ner till raderna med ett bindestreck, det andra filtret ner till raderna med p, och den sista grep filtrerar ner till raderna med python. Är vettigt?

Skiftlägeskänslighet

När du utför en sökning är skiftlägeskänslighet en stor fråga. Som standard är grep skiftlägeskänslig.

Om du till exempel söker efter "Python" visas inget resultat.

cat ~ / Desktop / PackageList.txt | grep Python

Lägg till följande alternativ för att göra grep-skriften "okänslig".

cat ~ / Desktop / PackageList.txt | grep -i Python

Filsökning

Låt oss säga att du har en katalog med många textfiler. Ditt mål är att identifiera filerna som innehåller eller inte innehåller ett mönster (sökord).

Jag tycker att den här metoden är ganska bra när jag söker i en hög med loggfiler. Eftersom jag inte har tid att öppna och kontrollera varje enskild fil manuellt, har jag grep att göra jobbet åt mig.

Använd ”-l” -flaggan för att lista filer som innehåller matchningen.

grep -l / sök / katalog / *

Som resultatet antyder är termen "python" närvarande i alla tre filer som finns i "Desktop" -katalogen.

För att lista filer utan någon matchning, använd flaggan “-L”.

grep -L / sök / katalog / *

"Ingen match.txt ”är den enda filen som inte innehåller termen“ python ”.

Inverterad sökning

Standardbeteendet för grep är att bara skriva ut raderna med matchande mönster, höger? Det är dags att vända processen. Den här gången skriver vi bara ut raderna UTAN det matchande mönstret.

Skicka bara alternativet “-v” till grep.

cat ~ / Desktop / PackageList.txt | grep -i -v Python

Skriva ut linjer före / efter matchen

Som standard skriver grep bara ut den linje som matchar sökmönstret. Med den här tekniken kan du be grep skriva ut rader före / efter matchen också.

Använd följande struktur för att skriva ut linjer före matchen.

grep -B

Här är 5 talraden som grep kommer att skriva ut INNAN matchande rad.

Använd följande för att skriva ut linjer efter matchningen.

grep -A

Vad sägs om att skriva ut både före och efter matchande linje? Använd i så fall “-C” -flaggan.

grep -C

Linje nummer

När grep visar utdata nämns inte radnumret. För tillhörande radnummer, använd flaggan “-n”.

grep -n

Ett ord

Om flaggan “-w” används behandlar grep mönstret som ett helt ord.

grep -w

Begränsar grep-sökning

Med Grep kan du ange antalet rader som ska sökas i filen. Den här metoden är användbar om du har att göra med en stor fil (som systemlogg). Använd flaggan “-m”.

grep -m

Rekursiv sökning

Det är en av de mest användbara funktionerna grep erbjuder för tung användning. Grep kan rekursivt söka i en katalog och hitta alla matchningar från alla filer den står inför.

grep -R

Eller,

grep -r

Jag hittar ofta att använda den här rekursiva funktionen tillsammans med “-l” -flaggan.

Tyst läge

Grep kan köras i “tyst” läge. När du kör i "tyst" -läge skriver inte grep ut någon utgång till terminalen. Istället returnerar den 0 (åtminstone hittades en matchning) eller 1 (ingen matchning hittades).

grep -q
eko $?

Regex

Grep tillåter också regex-sökningar (reguljärt uttryck). Detta lägger till en helt ny nivå av komplexitet och användbarhet av grep som ett sökverktyg.

Du kan till exempel använda parenteser för att söka efter både "alltför" och "två" samtidigt.

cat ~ / Desktop / gpl-3.0.txt | grep t [wo] o

Detta nästa exempel kommer bara att skriva ut raden om matchningen inträffar i början av raden.

grep ^ GNU ~ / Desktop / gpl-3.0.Text

När det gäller att matcha slutet, använd den här.

grep dig $ ~ / Desktop / gpl-3.0.Text

Om du vill använda Perl regex, använd sedan "-P" -flaggan. Det kommer att behandla mönstret som Perl regex.

grep -P

Slutgiltiga tankar

Grep erbjuder massor av sätt att anpassa sökfunktionen. Tillgången på regex låser upp en helt ny horisont för potentiell användning av grep. Det coolaste är att du kan använda både general och Perl regex; det du känner dig bekväm med.

För den mest detaljerade förklaringen, konsultera alltid mansidan.

man grep

Skål!

Mus AppyMouse styrplatta och muspekare för Windows-surfplattor
AppyMouse styrplatta och muspekare för Windows-surfplattor
Surfplattanvändare saknar ofta muspekaren, särskilt när de brukar använda bärbara datorer. Pekskärmen Smartphones och surfplattor har många fördelar o...
Mus Mellan musknappen fungerar inte i Windows 10
Mellan musknappen fungerar inte i Windows 10
De mittknappen hjälper dig att bläddra igenom långa webbsidor och skärmar med mycket data. Om det slutar, kommer du sluta använda tangentbordet för at...
Mus Hur man ändrar vänster och höger musknapp på Windows 10 PC
Hur man ändrar vänster och höger musknapp på Windows 10 PC
Det är en hel norm att alla datormusenheter är ergonomiskt utformade för högerhänta användare. Men det finns musenheter tillgängliga som är speciellt ...