Unix / Linux Så här använder du grep-kommandon

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.