Hvad er GREP i Linux, og hvordan bruger du det?
Grep er et lille Unix-program til at finde matchende mønstre. Begynder som et Unix-program, kan det findes på Linux såvel som Mac og BSD. Den kan læse næsten enhver tekst, hvilket betyder, at den kan læse input fra andre kommandoer, eller den kan åbne og se igennem filer direkte. Grep er sindssygt nyttigt, især for at kigge igennem mapper fra kommandolinjen.
Med det, hvorfor ikke prøve en af de mest almindelige anvendelser til Grep, finde en fil i en mappe. Se gennem din "~ / Downloads" -mappe for eventuelle "jpg" -billeder.
ls ~ / Downloads | grep .jpg
Grep vil liste dem alle ud og fremhæve ".jpg" -delen, da det er det du søgte efter.
Du rør outputen (med kommandoen "|") af næsten enhver kommando i grep
. Hvis du har en almindelig tekstfil, der ligger rundt, skal du cat
den ud og røre resultatet i Grep for at finde et bestemt ord.
cat file.txt | grep ord
Grep udskriver eventuelle linjer i filen, der indeholder ordet, som du fortalte det at søge efter.
Glem sagen
Unix-lignende systemer er store og små bogstaver, hvilket betyder, at "Ubuntu" er helt anderledes end "ubuntu". Det kan være en smerte, når du søger efter noget. Grep har et flag for at eliminere problemet. Tilføj -i
flag til din søgning, og Grep vil ignorere sagen.
ls ~ / Downloads | grep -i Ubuntu
Søg i en fil
Det ville ikke være så bekvemt at bruge cat
hver gang du ønskede at søge i en fil. Faktisk gør du det ikke. Grep kan søge gennem filer selv. Send det til stien til filen, og Grep vil gøre resten.
grep -i word /path/to/file.txt
Rekursive søgninger
Grep kan søge gennem mere end en fil eller mappe på samme tid. Vær advaret, hvis du leder efter filnavne, vil Grep også søge gennem filer som standard. -r
flagmet fortæller Grep at søge rekursivt.
ls ~ / Downloads | grep -r .deb
Du kan også parre dette med andre flag. Du vil muligvis gerne medtage -I
flag, når du foretager rekursive søgninger for at holde Grep ude af at se gennem binære filer.
ls ~ / Downloads | grep -iIr .deb
Find modsat
Du kan også fortælle Grep at se efter alt, hvad der ikke indeholder det angivne mønster. Dette ville være godt i tilfælde, hvor du skal finde en fejl, eller du har en mappe med masser af filer af en eller to typer.
grep -rv '192.168.1.110' / etc / nginx
Ord og linjer
Det kan også være nyttigt at fortælle Grep at søge efter komplette ord eller linjer, i stedet for noget der indeholder et bestemt mønster. Forestil dig, at du leder efter en række tegn, der er fælles som en del af et ord, men du har brug for at være adskilt. F.eks. Ordet "det". Selvfølgelig ville der ikke være mange gange, du ville faktisk gerne søge et mønster som "det", men det viser det.
cat textfile.txt | grep -w det
I stedet for at udskrive hvert ord, der indeholder mønsteret, vil Grep kun udskrive ordet alene. Det gør det samme for hele linjer med -x
flag, så hvis du leder efter en sætning eller en enkelt linje i en konfigurationsfil, kan det virkelig hjælpe.
Hvis du er interesseret i at undersøge alt, hvad Grep kan gøre, kør man grep
i en terminal for den komplette dokumentation. Denne artikel dækkede det grundlæggende og alt, hvad du normalt vil bruge fra dette kraftfulde værktøj. Del med os, hvis du kender til nogen kraftfulde anvendelser af Grep-kommandoen.
Billedkredit: Shell-script-punkter af interesse for koordinater