grep

Comanda Grep în Linux

Comanda Grep în Linux
Comanda Grep (global regular expression print) este cel mai puternic și utilizat în mod regulat utilitar de linie de comandă Linux. Folosind Grep, puteți căuta informații utile prin specificarea unui criteriu de căutare. Se caută un anumit model de expresie într-un fișier specificat. Când găsește o potrivire, imprimă toate liniile unui fișier care se potrivește cu modelul specificat. Este util când trebuie să filtrați prin fișiere jurnal mari.

În acest articol, vom explica utilizarea utilității grep cu diferite exemple. Vom folosi Debian 10 pentru a explica comenzile și metodele menționate în acest articol.

Instalarea Grep

Grep vine instalat în majoritatea distribuțiilor Linux. Cu toate acestea, în cazul în care lipsește din sistemul dvs., îl puteți instala folosind următoarea metodă în Terminal:

$ sudo apt-get install grep

Folosind Grep

Iată sintaxa de bază a comenzii grep. Începe cu grep urmat de câteva opțiuni și criterii de căutare și apoi se termină cu numele fișierului.

$ grep [opțiuni] MODEL [FIȘIER ...]

Căutați fișiere

Pentru a căuta un nume de fișier într-un director care conține un anumit șir în el, puteți utiliza grep în felul următor:

$ ls -l | grep -i „șir

De exemplu, pentru a căuta un nume de fișier care conține un șir „Test„, Comanda ar fi:

$ ls -l | grep -i test

Această comandă listează toate fișierele care conțin șirul „Test”.

Căutați un șir într-un fișier

Pentru a căuta un șir într-un anumit fișier, puteți utiliza următoarea sintaxă de comandă:

$ grep numele de fișier „șir”

De exemplu, pentru a căuta un șir „Test”Într-un fișier numit testfile1, am folosit următoarea comandă:

$ grep „angajat” testfile1

Rezultatul de mai sus a returnat propoziția din testfile1 care conține șirul „angajat”.

Căutați un șir în mai multe fișiere

Pentru a căuta un șir în mai multe fișiere, puteți utiliza următoarea sintaxă de comandă:

$ grep „șir” nume de fișier1 nume de fișier2

De exemplu, pentru a căuta un șir „angajat” în cele două fișiere testfile1 și testfile2, am folosit următoarea comandă:

$ grep „angajat” testfile1 testfile2

Comanda de mai sus va lista toate liniile care conțin șirul „angajat” din ambele fișiere testfile1 și testfile2.

De asemenea, puteți utiliza un caracter wildcard dacă toate numele de fișiere încep cu același text.

$ grep nume de fișier „șir” *

De exemplu, dacă luăm exemplul de mai sus în care erau numele fișierelor noastre testfile1 și testfile2 , comanda ar fi:

$ grep fișier de testare „angajat” *

Căutați un șir într-un fișier ignorând majusculele șirului

Cel mai adesea, ați întâlnit acest lucru atunci când căutați ceva folosind grep, dar nu primiți o ieșire. Acest lucru se întâmplă din cauza unei nepotriviri de cazuri în timp ce căutați un șir. La fel ca în exemplul nostru, dacă folosim din greșeală „Angajat" in loc de "angajat”, Va reveni la zero deoarece fișierul nostru conține șirul„angajat”Cu litere mici.

Puteți spune grep să ignore cazul șirului de căutare utilizând steagul -i după grep după cum urmează:

$ grep -i numele de fișier „șir”

Prin utilizarea steagului -i, comanda va efectua căutarea insensibilă la majuscule și va returna toate liniile care conțin șirul „angajat”În el fără a lua în considerare literele sunt cu majuscule sau minuscule.

Căutați folosind expresia regulată

Dacă este utilizată corect, expresia regulată este o caracteristică foarte eficientă în grep. Cu comanda Grep, puteți defini o expresie regulată cu un cuvânt cheie de început și de sfârșit. Procedând astfel, nu va trebui să tastați întreaga linie cu comanda grep. Următoarea sintaxă poate fi utilizată în acest scop.

$ grep „cuvânt cheie de pornire.* endKeyword ”nume de fișier

De exemplu, pentru a căuta o linie într-un fișier numit testfile1 care începe cu șirul „acesta” și se termină cu șirul „date”, am folosit următoarea comandă:

$ grep „asta.* date ”testfile1

Se va imprima întreaga linie din testfile1 care conține expresia (cuvântul cheie inițial „acesta” și cuvântul cheie final „date”).

Imprimați un anumit număr de linii după / înainte de șirul de căutare

De asemenea, puteți afișa numărul specific de linii dintr-un fișier înainte / după o potrivire a șirului împreună cu șirul potrivit. Următoarea sintaxă poate fi utilizată în acest scop:

$ grep -A Numele de fișier „șir”

Se va afișa N număr de linii după ce șirul este asociat în fișierul specificat, inclusiv șirul asociat.

De exemplu, acesta este exemplul nostru de fișier numit testfile2.

Următoarea comandă va afișa linia potrivită care conține șirul „angajat”, Împreună cu cele 2 linii de după acesta.

$ grep -A 2 -i „angajat” fișier de testare2

În mod similar, pentru a afișa N număr de linii înainte de șirul potrivit într-un anumit fișier, utilizați următoarea sintaxă:

$ grep -B Numele de fișier „șir”

Pentru a afișa N număr de linii în jurul șirului într-un anumit fișier, utilizați următoarea sintaxă:

$ grep -C Numele de fișier „șir”

Evidențierea căutării

Grep în mod implicit imprimă liniile potrivite, dar nu arată care porțiune a liniei este potrivită. Dacă utilizați opțiunea -color cu grep, aceasta va arăta unde șirurile de prelucrare apar în fișierul dvs. Grep utilizează în mod implicit culoarea roșie pentru evidențiere.

Următoarea sintaxă poate fi utilizată în acest scop:

$ grep nume de fișier „șir” - culoare

Numărarea numărului de meciuri

Dacă doriți să numărați de câte ori apare un anumit cuvânt într-un anumit fișier, puteți utiliza opțiunea grep cu -c. Acesta returnează doar numărul de meciuri, mai degrabă decât meciurile în sine. Următoarea sintaxă poate fi utilizată în acest scop:

$ grep -c numele de fișier „șir”

Acesta este exemplul nostru de fișier:

Următorul este un exemplu de comandă care a returnat de câte ori a fost cuvântul fişier a apărut într-un fișier numit testfile3.

Căutare inversată

Uneori, doriți să efectuați o căutare inversă care afișează toate liniile, cu excepția celor care se potrivesc cu intrarea. Pentru a face acest lucru, pur și simplu utilizați steagul -v urmat de grep:

$ grep -v numele de fișier „șir”

De exemplu, pentru a afișa toate liniile dintr-un fișier testfile3 care nu conțin cuvântul „cont” în ele, am folosit următoarea comandă:

$ grep -v „cont” fișier de testare3

Folosirea Grep cu alte comenzi

Grep poate fi, de asemenea, utilizat pentru a filtra rezultatul necesar din diferite comenzi de ieșire. De exemplu, din „apt -installed list ” ieșire comandă, doriți să găsiți numai pachetele care au fost instalate automat, puteți filtra rezultatul folosind grep după cum urmează:

$ apt - lista instalată | grep automat

În mod similar, lscpu oferă informații detaliate despre CPU. Dacă sunteți doar interesat de informațiile referitoare la arhitectura CPU, le puteți filtra folosind următoarea comandă:

$ lscpu | grep Arhitectură

În acest articol, am descris câteva exemple care vă vor ajuta să înțelegeți comenzile grep și să le utilizați în diferite condiții. A avea un control puternic asupra comenzii grep vă poate economisi mult timp dacă trebuie să vă uitați la configurații mari sau fișiere jurnal și să parcurgeți informații utile prin intermediul acestora.

WinMouse lets you customize & improve mouse pointer movement on Windows PC
If you want to improve the default functions of your mouse pointer use freeware WinMouse. It adds more features to help you get the most out of your h...
Mouse left-click button not working on Windows 10
If you are using a dedicated mouse with your laptop, or desktop computer but the mouse left-click button is not working on Windows 10/8/7 for some rea...
Cursor jumps or moves randomly while typing in Windows 10
If you find that your mouse cursor jumps or moves on its own, automatically, randomly while typing in Windows laptop or computer, then some of these s...