grep är ett av de viktigaste Unix / Linux kommandoradsverktygen. Denna handledning visar på olika sätt att använda textsökverktyget.
grep står för "Global sökning i Regular Expression and Print".
grep visar linjerna i en fil som matchar ett mönster för STDIN (Input through keyboard). Mönstret som ges som input via grep är reguljära uttryck som kan användas för att leta i filinnehållet enkelt.
Syntax: grep [OPTIONS] PATTERN [FILE]
Kommando 1.1
$ grep 'root' / etc / passwd
Ovanstående kommando kommer att söka efter innehåll som har "root" skrivet inuti en fil '/ etc / passwd'. Om en fil innehåller strängar som "rootwr", "ishroot" kommer den att matcha roten i "rootwr" och "ishroot" och visar resultatet. Om du vill hitta exakt ord "root" med grep följ nedan kommando.
Kommando 1.2
$ grep -w 'root' / etc / passwd
Använd -w för att matcha exakt ord.
Ovanstående kommando kommer att matcha -w exakt ord "root". Nu om en fil innehåller strängar som "rootwr", "root", "ishroot", visas det här kommandot bara för mönster root "inte för" rootwr "och" ishroot "som visades i det första kommandot 1.1.
Kommando 1.3
$ grep -i 'bug' / etc / passwd
Använd -i för att leta efter sakintensiv.
Om du söker med det här kommandot 'grep' bug '/ etc / passwd'
Den kommer bara att matcha för "bug" -strängmönster vilket inte är ett otillräckligt mönster. Om / etc / passwd innehåller "Bug", "BuG", "bGG" visas det här kommandot 'grep' bug '/ etc / passwd' tomma resultat.
För att kunna söka i ett fall för att matcha mönstret måste du använda '-i' så det matchar alla mönster för given sträng.
till exempel $ grep -i 'bug' / etc / passwd
kommer att matcha mönster för:
'insekt'
'Insekt'
'insekt'
'insekt'
'INSEKT'
'Insekt'
'insekt'
Alla mönster som utvärderas från "bug".
Kommando 1.4
$ grep -n 'root' / etc / passwd
Använd -n för att skriva ut radnummer på träffar
nu -n alternativet visar linjenummer med linjer, som innehåller inmatningsmönstret. Ovanstående kommando visar linjenummer som innehåller strängen 'root'.
Om du vill matcha mer än ett ord så kan detta göras med följande kommando:
Kommando 1.5
$ grep -E -n 'backup | root' / etc / passwd
Ovanstående kommando söker efter båda orden mönster "backup" och "root" och kommer att visa linjenumren med linjer som innehåller de båda orden.
Var:
Använd -E för Utökade reguljära uttryck
mer hjälp om detta kan hittas med kommandot man grep.
Kommando 1.6
$ grep -v 'root' / etc / passwd
Använd -v för att skriva ut linjer som inte innehåller mönster.
Ovanstående kommando visar linjer som inte innehåller mönstret "root".
Kommando 1.7
$ grep -r 'root' / etc /
Använd -r för att rekursivt söka i en katalog.
Detta kommando kommer att söka och visa för mönstret "root" i alla filer i "/ etc /" -katalogen.
Kommando 1.8
$ grep -c 'bash' / etc / passwd
Använd '-c' för att returnera ett antal linjer med matchningsmönstret.
Detta kommando visar antalet linjer som innehåller "bash" -mönstret i en fil / etc / passwd.
Kommando 1.9
$ grep -r -l 'root' / etc
Använd '-l' för att returnera namnen på filer som har minst en rad som innehåller mönstret.
Ovanstående kommando visar namnen på filer som innehåller mönstret root,
in / etc-katalogen. Viktig anmärkning här är att du måste använda '-r' (kommando 1.7) alternativet för att kryssa / etc katalogen rekursivt.