Vodič za naredbe Grep - Kako tražiti datoteku u Linuxu i Unixu pomoću rekurzivnog traženja

grepkratica je Globalno traženje redovitog izražavanja i Ispis . To je alat naredbenog retka koji se koristi u sustavima UNIX i Linux za pretraživanje određenog uzorka u datoteci ili grupi datoteka.

grepdolazi s puno opcija koje nam omogućuju izvršavanje različitih radnji povezanih s pretraživanjem datoteka. U ovom ćemo članku pogledati kako se koristiti greps dostupnim opcijama, kao i osnovnim regularnim izrazima za pretraživanje datoteka.

Kako koristiti grep

Bez dodavanja bilo kakve opcije, grepmože se koristiti za traženje uzorka u datoteci ili grupi datoteka. Sintaksa je:

grep ''  

Imajte na umu da su oko teksta potrebni pojedinačni ili dvostruki navodnici ako je riječ o više riječi.

Također možete koristiti zamjenski znak (*) za odabir svih datoteka u direktoriju.

Rezultat toga su pojavljivanja uzorka (do crte koja se nalazi) u datotekama. Ako nema podudaranja, izlaz se neće ispisati na terminal.

Na primjer, recimo da imamo sljedeće datoteke (nazvane grep.txt):

Hello, how are you I am grep Nice to meet you 

Sljedeća grepnaredba pretražit će sve pojave riječi 'ti':

grep you grep.txt 

Rezultat ovoga je:

Hello, how are you Nice to meet you 

you očekuje se da ima drugačiju boju od drugog teksta radi lakšeg prepoznavanja onoga što se tražilo.

Ali grepdolazi s više opcija koje nam pomažu postići više tijekom postupka pretraživanja. Pogledajmo njih devet dok ih primjenjujemo na gornji primjer.

Opcije korištene s grep

1. -n(--line-number) - popis brojeva linija

Ovo ispisuje podudaranja za tekst zajedno s brojevima redaka. Ako pogledate gore navedeni rezultat, primijetit ćete da nema brojeva redaka, već samo podudaranja.

grep you grep.txt -n 

Proizlaziti:

1: Hello, how are you 3: Nice to meet you 

2. -c(--count) - ispisuje broj linija podudaranja

grep you grep.txt -c 

Proizlaziti:

2 

Imajte na umu da bi, ako je na prvom retku bilo drugo "vi", opcija -ci dalje ispisivala 2. To je zato što se tiče broja redaka na kojima se podudaranja pojavljuju, a ne broja podudaranja.

3. -v(--invert-match) - ispisuje linije koje se ne podudaraju s navedenim uzorkom

grep you grep.txt -v -n 

Proizlaziti:

2. I am grep 

Primijetite da smo koristili i opciju -n? Da, u jednoj naredbi možete primijeniti više opcija.

4. -i(--ignore-case) - koristi se za neosjetljivost na velika i mala slova

# command 1 grep You grep.txt # command 2 grep YoU grep.txt -i 

Rezultati:

# result 1 # no result # result 2 Hello, how are you Nice to meet you 

5. -l(--files-with-matches) - ispis imena datoteka koja odgovaraju uzorku

# command 1 grep you grep.txt -l # command 2 grep You grep.txt -i -l 

Rezultati:

# result 1 grep.txt # result 2 # all files in the current directory that matches # the text 'You' case insensitively 
#### 6. `-w` (--word-regexp) - print matches of the whole word 

Prema zadanim postavkama greppodudara se sa nizovima koji sadrže navedeni obrazac. To znači da grep yo grep.txtće se ispisati isti rezultati kao i grep yo grep.txtzato što se u vama može naći 'yo'. Slično tome, 'ou'.

Uz mogućnost -w, greposigurava da se utakmice su potpuno isti obrazac kao što je navedeno. Primjer:

grep yo grep.txt -w 

Proizlaziti:

Nema rezultata!

7. -o(--samo podudaranje) - ispišite samo odgovarajući uzorak

Prema zadanim postavkama grepispisuje liniju na kojoj se nalazi odgovarajući uzorak. Uz opciju -o, samo se podudarani uzorak ispisuje redak po redak. Primjer:

grep yo grep.txt -o 

Proizlaziti:

yo 

8. -A(--after-context) i -B(--before-context) - ispisujte retke nakon i prije (odnosno) podudarnog uzorka

grep grep grep.txt -A 1 -B 1 

Proizlaziti:

Hello, how are you I am grep Nice to meet you 

Ovaj podudarni uzorak nalazi se na liniji 2. -A 1znači jedan redak nakon podudarne linije i -B 1znači jedan redak prije podudarne linije.

Postoji i -Copcija (--context) koja je jednaka -A+ -B. Vrijednost proslijeđena u -Ckoristila bi se za -Ai -B.

9. -R(--dereference-rekurzivno) - rekurzivno pretraživanje

Prema zadanim postavkama grepne može pretraživati ​​direktorije. Ako pokušate to učiniti, dobit ćete pogrešku ("Je li direktorij"). Uz mogućnost -R, pretraživanje datoteka u direktorijima i poddirektorijima postaje moguće. Primjer:

grep you . 

Proizlaziti:

# 'you' matches in a folders # and files starting from the # current directory 

Regularni izrazi za obrasce

greptakođer omogućuje osnovne regularne izraze za specificiranje obrazaca. Dvije od njih su:

1. ^pattern- početak crte

Ovaj obrazac znači da grepće se podudarati sa nizovima čiji redovi počinju s nizom navedenim nakon ^. Primjer:

grep ^I grep.txt -n 

Proizlaziti:

2: I 

2. pattern$- kraj retka

Za razliku od ^, $određuje obrasce koji će se podudarati ako linija prije završava nizom $. Primjer:

grep you$ grep.txt 

Proizlaziti:

1: Hello, how are you 3: Nice to meet you 

Zamotati

grepmoćan je alat za pretraživanje datoteka u terminalu. Razumijevanje načina njegove upotrebe daje vam mogućnost da lako pronađete datoteke putem terminala.

Uz ovaj je alat priloženo više opcija. Možete pronaći sa man grep.