grep

Comandă grep Linux

Comandă grep Linux
Grep este unul dintre cele mai bune instrumente pe care le puteți avea la dispoziție. Acest utilitar din linia de comandă efectuează o căutare în seturi de date text simplu. Grep este de fapt un acronim pentru „gcăutare lobală a regular expression și print ”. Grep și-a început călătoria ca parte a familiei UNIX. De-a lungul timpului, este acum disponibil pentru toate platformele populare precum Linux, Mac, BSD și chiar Windows!

Ați mai folosit grep? De cele mai multe ori, trucul grep de bază poate face cea mai mare parte a muncii. Cu toate acestea, grep oferă o mulțime de moduri de a efectua căutarea și de a regla fin ieșirea la o versiune mai utilizabilă. În acest articol, să verificăm utilizarea comenzii grep.

Utilizarea Grep

Verificarea existenței

Dacă rulați orice fel de distribuție Linux, atunci aveți deja grep instalat. Rulați următoarea comandă în terminal.

grep --versiune

Această comandă este utilizată pentru a afișa versiunea grep instalată în prezent. Acum, avem nevoie de un fișier demo. În cazul meu, voi genera un fișier text care include toate pachetele instalate pe sistemul meu.

Noțiuni de bază

Utilizarea de bază a grep urmează următoarea structură.

grep

Sau, pentru o înțelegere mai ușoară, utilizați aceasta.

grep -e -f

În acest caz, grep va efectua o căutare în fișier și va imprima toate liniile care includ modelul (termenul de căutare).

grep python ~ / Desktop / PackageList.txt

Grep a căutat în fișierul „PackageList.txt ”Am generat mai devreme și am imprimat toate liniile care includ„ python ”.

Aceeași operație poate fi efectuată în alt mod. Consultați următorul exemplu.

cat ~ / Desktop / PackageList.txt | grep python

Aici, folosind comanda „cat”, am trimis conținutul fișierului „PackageList.txt ”la grep. Folosind rezultatul cat, grep a efectuat căutarea și a imprimat liniile care conțin termenul de căutare.

Acum vine un lucru distractiv. Puteți stiva literalmente mai multe comenzi grep la fel.

cat ~ / Desktop / PackageList.txt | grep - | grep p | grep python

Primul grep filtrează până la liniile cu o cratimă, al doilea filtrează până la liniile cu p, iar grep-ul final filtrează până la liniile cu python. Are sens?

Sensibil la majuscule

Când efectuați o căutare, sensibilitatea la majuscule și minuscule este o întrebare majoră. În mod implicit, grep este sensibil la majuscule și minuscule.

De exemplu, căutarea „Python” nu va afișa niciun rezultat.

cat ~ / Desktop / PackageList.txt | grep Python

Pentru a face grep majuscule „insensibile”, adăugați următoarea opțiune.

cat ~ / Desktop / PackageList.txt | grep -i Python

Căutare fișiere

Să presupunem că aveți un director cu numeroase fișiere text. Scopul dvs. este să identificați fișierele care conțin sau nu un model (termen de căutare).

Găsesc această metodă destul de utilă atunci când căutăm într-o grămadă de fișiere jurnal. Deoarece nu am timp să deschid și să verific manual fiecare fișier, am grep să fac treaba pentru mine.

Pentru listarea fișierelor care conțin potrivirea, utilizați steagul „-l”.

grep -l / căutare / director / *

După cum sugerează rezultatul, termenul „python” este prezent în toate cele 3 fișiere prezente în directorul „Desktop”.

Pentru listarea fișierelor fără nicio potrivire, utilizați steagul „-L”.

grep -L / căutare / director / *

"Nu se potrivesc.txt ”este singurul fișier care nu conține termenul„ python ”.

Căutare inversată

Comportamentul implicit al grep este de a imprima doar liniile cu modelul de potrivire, dreapta? Este timpul să inversăm procesul. De data aceasta, vom imprima doar liniile FĂRĂ modelul de potrivire.

Treceți doar opțiunea „-v” la grep.

cat ~ / Desktop / PackageList.txt | grep -i -v Python

Tipărirea liniilor înainte / după meci

În mod implicit, grep va imprima doar linia care se potrivește cu modelul de căutare. Folosind această tehnică, îi puteți spune grep să imprime și liniile înainte / după meci.

Pentru imprimarea liniilor înainte de meci, utilizați următoarea structură.

grep -B

Aici, 5 este linia de număr pe care grep o va imprima ÎNAINTE de linia potrivită.

Pentru imprimarea liniilor după meci, utilizați următoarea.

grep -A

Ce zici de tipărire atât înainte, cât și după linia de potrivire? În acest caz, utilizați steagul „-C”.

grep -C

Numărul de linie

Când grep arată ieșirea, nu menționează numărul liniei. Pentru numărul (numerele) de linie asociat, utilizați semnalizatorul „-n”.

grep -n

Un singur cuvânt

Dacă se folosește steagul „-w”, grep va trata modelul ca pe un cuvânt întreg.

grep -w

Limitarea căutării grep

Grep permite specificarea numărului de linii de căutat în fișier. Această metodă este utilă dacă aveți de-a face cu un fișier mare (cum ar fi jurnalul de sistem). Folosiți steagul „-m”.

grep -m

Căutare recursivă

Este una dintre cele mai utile caracteristici oferite de grep pentru o utilizare intensă. Grep poate căuta recursiv într-un director și poate găsi toate potrivirile din toate fișierele cu care se confruntă.

grep -R

Sau,

grep -r

De multe ori găsesc folosirea acestei funcții recursive împreună cu steagul „-l”.

Mod silențios

Grep poate fi rulat în modul „silențios”. Când rulează în modul „silențios”, grep nu va imprima nicio ieșire pe terminal. În schimb, va returna 0 (cel puțin, a fost găsit un meci) sau 1 (nu a fost găsit niciun meci).

grep -q
ecou $?

Regex

Grep permite, de asemenea, căutări regex (expresie regulată). Acest lucru adaugă un nivel complet nou de complexitate și utilizare a grep ca instrument de căutare.

De exemplu, puteți utiliza paranteze pentru a căuta atât „prea”, cât și „doi” în același timp.

cat ~ / Desktop / gpl-3.0.txt | grep t [wo] o

Următorul exemplu va imprima linia numai dacă potrivirea are loc chiar la începutul liniei.

grep ^ GNU ~ / Desktop / gpl-3.0.txt

În ceea ce privește potrivirea finalului, utilizați-l pe acesta.

grep you $ ~ / Desktop / gpl-3.0.txt

Dacă doriți să utilizați Perl regex, utilizați steagul „-P”. Acesta va trata modelul ca Perl regex.

grep -P

Gânduri finale

Grep oferă multe moduri de a personaliza funcția de căutare. Disponibilitatea regex deblochează un orizont complet nou pentru utilizarea potențială a grep. Interesant este că poți folosi atât regexul general, cât și Perl; cu oricare te simți confortabil.

Pentru cea mai detaliată explicație, consultați întotdeauna pagina manuală.

om grep

Noroc!

Best Linux Distros for Gaming in 2021
The Linux operating system has come a long way from its original, simple, server-based look. This OS has immensely improved in recent years and has no...
Cum să capturați și să transmiteți în flux sesiunea de jocuri pe Linux
În trecut, jocurile erau considerate doar un hobby, dar cu timpul industria jocurilor a cunoscut o creștere imensă în ceea ce privește tehnologia și n...
Cele mai bune jocuri pentru a juca cu urmărirea manuală
Oculus Quest a introdus recent marea idee de urmărire manuală fără controlere. Cu un număr din ce în ce mai mare de jocuri și activități care execută ...