Vad är GREP i Linux och hur använder du det?
Grep är ett litet Unix-program för att hitta matchande mönster. Börjat som ett Unix-program, det kan hittas på såväl Linux som Mac och BSD. Det kan läsa nästan alla texter, vilket betyder att det kan läsa inmatning från andra kommandon, eller det kan öppna och titta igenom filer direkt. Grep är galen användbar, speciellt för att titta igenom kataloger från kommandoraden.
Med det, varför inte prova en av de vanligaste användningarna för Grep, hitta en fil i en katalog. Titta igenom din "~ / Downloads" -mapp för alla "jpg" -bilder.
ls ~ / Nedladdningar | grep .jpg
Grep listar dem alla ut och markerar ".jpg" -delen eftersom det är det du sökte efter.
Du rör utmatningen (med kommandot "|") av nästan alla kommandon i grep
. Om du har en vanlig textfil att ligga runt, cat
ut och rör resultatet i Grep för att hitta ett visst ord.
cat file.txt | grepord
Grep skriver ut några rader i filen som innehåller ordet som du sa att det ska leta efter.
Glöm målet
Unix-liknande system är skiftlägeskänsliga, vilket betyder att "Ubuntu" är helt annorlunda än "ubuntu". Det kan vara en smärta när man letar efter något. Grep har en flagga för att eliminera problemet. Lägg till -i
flaggan för din sökning, och Grep kommer att ignorera fallet.
ls ~ / Nedladdningar | grep -i Ubuntu
Sök i en fil
Det skulle inte vara så bekvämt att behöva cat
varje gång du ville söka i en fil. Egentligen gör du det inte. Grep kan söka igenom filer själv. Passera det till sökvägen till filen, och Grep kommer att göra resten.
grep -i word / path / to / file.txt
Rekursiva sökningar
Grep kan söka igenom mer än en fil eller katalog samtidigt. Varnas, om du letar efter filnamn, kommer Grep även att söka igenom filer som standard. -r
flaggan berättar Grep att söka rekursivt.
ls ~ / Nedladdningar | grep -r .deb
Du kan para det här med andra flaggor också. Du kanske vill inkludera -I
flaggan när du gör rekursiva sökningar för att hålla Grep från att se genom binära filer.
ls ~ / Nedladdningar | grep -iIr .deb
Hitta motsatsen
Du kan också berätta för Grep att leta efter allt som inte innehåller det angivna mönstret. Det här skulle vara bra i de fall där du måste hitta ett fel eller du har en katalog med massor av filer av en eller två typer.
grep -rv '192.168.1.110' / etc / nginx
Ord och linjer
Det kan också vara bra att berätta för Grep att söka efter kompletta ord eller rader, istället för vad som innehåller ett visst mönster. Tänk dig att du letar efter en rad tecken som är vanliga som en del av ett ord, men du behöver det vara separat. Till exempel, ordet "det". Det skulle uppenbarligen inte vara många gånger du skulle faktiskt vilja leta efter ett mönster som "det", men det visar sig.
cat textfile.txt | grep -w det
I stället för att skriva ut varje ord som innehåller mönstret, kommer Grep bara skriva ut ordet i sig. Det gör samma sak för hela linjerna med -x
flaggan, så om du letar efter en fras eller en rad i en konfigurationsfil kan det verkligen hjälpa till.
Om du är intresserad av att undersöka allt Grep kan göra, kör man grep
i en terminal för fullständig dokumentation. Den här artikeln täckte grunderna och allt som du normalt behöver från detta kraftfulla verktyg. Dela med oss om du vet om några kraftfulla användningar av Grep-kommandot.
Bildkredit: Shell-skript av intresse för koordinater