grep înseamnă Căutați la nivel global expresii regulate și imprimați. Este un instrument de linie de comandă utilizat în sistemele UNIX și Linux pentru a căuta un model specificat într-un fișier sau grup de fișiere.

grep vine cu o mulțime de opțiuni care ne permit să efectuăm diferite acțiuni legate de căutare pe fișiere. În acest articol, vom analiza modul de utilizare grep cu opțiunile disponibile, precum și expresii regulate de bază pentru căutarea fișierelor.

Cum se folosește grep

Fără a trece nicio opțiune, grep poate fi folosit pentru a căuta un model într-un fișier sau un grup de fișiere. Sintaxa este:

grep '<text-to-be-searched>' <file/files>

Rețineți că ghilimelele simple sau duble sunt necesare în jurul textului dacă este mai mult de un cuvânt.

Puteți utiliza, de asemenea, wildcard

pentru a selecta toate fișierele dintr-un director.

Rezultatul este apariția modelului (după linia pe care o găsește) în fișier (e). Dacă nu există nicio potrivire, nicio ieșire nu va fi tipărită pe terminal.

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

De exemplu, să presupunem că avem următoarele fișiere (denumite grep.txt): grep Următoarele

grep you grep.txt

comanda va căuta toate aparițiile cuvântului „tu”:

Hello, how are you
Nice to meet you

you Rezultatul pentru aceasta este:

este de așteptat să aibă o culoare diferită de celălalt text pentru a identifica cu ușurință ceea ce a fost căutat. grep Dar

vine cu mai multe opțiuni care ne ajută să obținem mai multe în timpul unei operațiuni de căutare. Să ne uităm la nouă dintre ele în timp ce le aplicăm la exemplul de mai sus. grep

Opțiuni utilizate cu -n 1.

(–line-number) – lista numerelor de linie

grep you grep.txt -n

Aceasta imprimă potrivirile pentru text împreună cu numerele de linie. Dacă te uiți la rezultatul pe care îl avem mai sus, vei observa că nu există numere de linie, ci doar meciuri.

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

Rezultat: -c 2.

grep you grep.txt -c

(–count) – imprimă numărul de rânduri de potriviri

2

Rezultat: Rețineți că -c dacă a existat un alt „tu” pe prima linie, opțiune

ar imprima în continuare 2. Acest lucru se datorează faptului că este preocupat de numărul de linii în care apar meciurile, nu de numărul de meciuri. -v 3.

grep you grep.txt -v -n

(–invert-match) – imprimă liniile care nu se potrivesc cu modelul specificat

2. I am grep

Rezultat: -nObservați că am folosit și opțiunea

? Da, puteți aplica mai multe opțiuni într-o singură comandă. -i 4.

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

(–ignore-case) – utilizat pentru insensibilitate la majuscule

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

Rezultate: -l 5.

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

(–files-with-matches) – tipăriți numele fișierelor care se potrivesc cu un model

# 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

Rezultate: grep În mod implicit, grep yo grep.txt se potrivește șirurilor care conțin modelul specificat. Aceasta înseamnă că grep yo grep.txt va imprima aceleași rezultate ca

pentru că „yo” se găsește în tine. În mod similar, „ou”. -wCu opțiunea grep ,

grep yo grep.txt -w

se asigură că meciurile sunt exact același tipar ca cel specificat. Exemplu:

Rezultat:

Nici un rezultat! -o 7.

(- numai potrivire) – imprimați doar modelul potrivit grep În mod implicit, -otipărește linia în care se găsește modelul potrivit. Cu opțiune

grep yo grep.txt -o

, doar modelul asortat este tipărit rând cu rând. Exemplu:

yo

Rezultat: -A 8. -B (–after-context) și

grep grep grep.txt -A 1 -B 1

(–before-context) – imprimați liniile după și înainte (respectiv) modelul potrivit

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

Rezultat: -A 1 Acest model asortat este pe linia 2. -B 1 înseamnă o linie după linia potrivită și

înseamnă o linie înainte de linia potrivită. -C Există, de asemenea, un -A (–context) opțiune care este egală cu -B+ -C . Valoarea transmisă către -A ar fi folosit pentru -Bși

. -R 9.

(–dereference-recursive) – căutare recursivă grep În mod implicit, -Rnu poate căuta directoare. Dacă încercați să faceți acest lucru, veți primi o eroare („Este un director”). Cu opțiune

grep you .

, căutarea fișierelor în directoare și subdirectoare devine posibilă. Exemplu:

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

Rezultat:

grep Expresii regulate pentru modele

permite, de asemenea, expresii regulate de bază pentru specificarea tiparelor. Două dintre ele sunt: ^pattern 1.

– începutul unei linii grep Acest model înseamnă că ^va potrivi șirurile ale căror linii încep cu șirul specificat după

grep ^I grep.txt -n

. Exemplu:

2: I

Rezultat: pattern$ 2.

– sfârșitul unei linii ^In contrast cu $ , $specifică modele care vor fi potrivite dacă linia se termină cu șirul anterior

grep you$ grep.txt

. Exemplu:

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

Rezultat:

grep Învelire

este un instrument puternic pentru căutarea fișierelor din terminal. Înțelegerea modului de utilizare vă oferă posibilitatea de a găsi cu ușurință fișiere prin terminal. man grepExistă mai multe opțiuni atașate acestui instrument. Puteți găsi cu