Comanda Grep: instrument puternic pentru a găsi text de la Terminal

Comanda Grep

Aproape oricine are un computer sau care lucrează cu unul va cunoaște comanda rapidă de la tastatură Ctrl + F pentru a găsi text. „F” înseamnă „Găsiți”, „să găsiți” în limba engleză și poate fi folosit, de exemplu, pentru a găsi text pe o pagină web. Această comandă rapidă este disponibilă și în multe aplicații, există programe care folosesc „B” pentru „Căutare, dar aceste comenzi rapide funcționează numai dacă suntem în interiorul aplicației și cu fișierul deschis. În Linux avem instrumente foarte puternice pe care le putem lansa de la Terminal și dacă vrem găsiți orice text care se află în echipa noastră vom folosi comanda grep.

grep Este o comandă care ne va ajuta să găsim text în fișierul pe care îl indicăm. Numele său provine de la g / re / p, o comandă care funcționează pentru ceva similar într-un editor de text Unix / Linux. Ca multe alte comenzi, grep Are multe opțiunile disponibile pe care le vom adăuga sub formă de litere și fiecare va îndeplini o sarcină diferită. Combinând aceste opțiuni vom putea efectua căutări complexe într-unul sau mai multe fișiere. Aici vă arătăm tot ce trebuie să știți.

cu grep vom găsi orice text în orice fișier

În primul rând vom explica opțiunile disponibile:

  • -i: nu va face distincție între majuscule și minuscule.
  • -w: forțați-l să găsească numai cuvinte specifice.
  • -v: selectează liniile care nu se potrivesc.
  • -n: arată numărul liniei cu cuvintele solicitate.
  • -h: elimină prefixul din numele fișierului Unix din ieșire.
  • -r: caută directoare recursiv.
  • -R: ca -r, dar urmați toate legăturile simbolice.
  • -l: afișează numai numele fișierelor cu liniile selectate.
  • -c- Afișează un singur număr pentru fiecare fișier al liniilor selectate.
  • -Culoare: Afișează modelele potrivite în culori.

În imaginea pe care o conduceți acest articol am căutat cuvântul „Imagini” în fișierul „830.desktop” care se află în acea cale. După cum puteți vedea, am scris:

grep Imágenes /home/pablinux/Documentos/830.desktop

Rețineți că în acest articol vom scrie exemple care trebuie modificate în funcție de preferințele noastre de căutare. Când spunem „Fișier”, „Cuvânt” etc, ne vom referi la fișierul cu calea sa. Dacă tocmai aș fi scris „grep Images 830.desktop” aș fi primit un mesaj spunând că fișierul nu există. Sau cam așa ar fi dacă fișierul nu se află în directorul rădăcină.

Alte exemple ar fi:

  • grep -i images /home/pablinux/Documentos/830.desktop, unde „imagini” ar fi cuvântul pe care dorim să îl găsim, iar restul fișierul cu calea sa. Acest exemplu ar căuta „imagini” în fișierul „830.desktop” insensibil la majuscule.
  • imagini grep -R: ar căuta toate liniile unui director și toate subdirectoarele sale unde se găsește cuvântul „imagini”.
  • grep -c exemplu test.txt: aceasta ne-ar căuta și arăta numărul total de ori în care apare „exemplu” într-un fișier numit „test.txt.

Cu grep putem căuta și fișiere

Dacă vrem să găsim fișierul 830.desktop, vom scrie următoarea comandă:

grep 830.desktop

Aceasta va efectua o căutați fișierul «830.desktop» în folderul nostru personalCu alte cuvinte, dacă fișierul se află în folderul personal al altui utilizator, acesta nu va fi găsit. Acesta este cel mai normal lucru din lume, deoarece un utilizator nu are permisiunea de a accesa conținutul altuia fără parola sa.

Cum se efectuează căutări recursive

grep ne permite, de asemenea efectuați căutări supuse regulilor sau liniilor directoare recurente. De exemplu, citiți toate fișierele din fiecare director care conțin cuvântul „Pablinux”. Pentru aceasta vom scrie:

grep -r Pablinux /home/

Ei bine:

grep -R Pablinux /home/

Vom vedea rezultatele pentru „Pablinux” pe o linie separată precedată de numele fișierului în care a fost găsit. Dacă nu dorim să vedem numele fișierelor în ieșirea datelor, vom folosi opțiunea -h (din „ascunde”; ascunde):

grep -h -R Pablinux /home/

Putem uni opțiunile împreună și putem scrie „-hR” fără ghilimele.

Cum se fac căutări de cuvinte exacte

Uneori există fișiere care conțin ceea ce dorim să căutăm altceva. De exemplu, acest lucru ni se poate întâmpla în cuvinte compuse și căutând „păduri” putem găsi „rangers”. Dacă vrem găsiți un cuvânt exact vom folosi opțiunea -w:

grep -w bosques /home/pablinux/Documentos/vacaciones.txt

Comanda de mai sus ar căuta „păduri”, ignorând rangerii, în fișierul „holidays.txt” din calea indicată. Dacă vrem să căutăm două cuvinte diferite, vom folosi comanda egrep:

egrep -w bosques|plantas /ruta/del/archivo

Aflați de câte ori apare un cuvânt într-un fișier

grep este, de asemenea, capabil numărați de câte ori apare un cuvânt într-un fișier. Pentru aceasta vom folosi opțiunea -c:

grep -c prueba /ruta/al/archivo

Adăugând opțiunea -n ceea ce vom vedea este numărul liniei în care apare cuvântul.

Căutări inversate

Putem face și contrariul, adică căutați linii care nu conțin un cuvânt. Pentru aceasta vom folosi opțiunea -v, care ar fi după cum urmează:

grep -v la ruta/al/archivo

Comanda de mai sus va afișa toate liniile care nu conțineau cuvântul „the”. Acest lucru poate fi util la documente sau liste în care un cuvânt se repetă de multe ori și, dintr-un anumit motiv, trebuie să accesăm restul rândurilor.

Accesarea informațiilor despre sistem cu grep

Model PC

grep nu este capabil doar să caute în fișiere. Este, de asemenea capabil să vizualizeze informații despre sistem. În captura de ecran anterioară putem vedea cum ne arată ce model de PC avem (știu că nu este cel mai puternic laptop din lume). Pentru aceasta am folosit comanda:

cat /proc/cpuinfo | grep -i 'Model'

Ei bine:

grep -i 'Model' /proc/cpuinfo

Dacă vrem să vedem numele unităților de disc, vom scrie:

dmesg | egrep '(s|h)d[a-z]'

Cum să enumerați numai numele de fișiere potrivite

Dacă dorim să vedem o listă cu doar numele fișierelor care se potrivesc cu o căutare, vom folosi opțiunea -l așa cum se arată mai jos:

grep -l 'main' *.c

Și dacă vrem să vedem cuvântul în culori, vom scrie:

grep --color palabra /ruta/al/archivo

După cum puteți vedea, comanda grep este o instrument foarte puternic Merită mai ales în cazurile în care nu ne amintim unde am scris ceva sau în programare. În plus, ne ajută să aflăm informații despre sistem într-un mod care să le placă iubitorilor de Terminal. Ți-a fost util acest ghid privind comanda pentru a găsi texte? grep?


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.

  1.   nordi el a spus

    Buna ziua!
    Când spuneți că Grep este folosit și pentru căutarea fișierelor, nu cred că este corect deoarece, dacă rulați grep EXPRESSION și nu îi transmiteți fișierul, acesta va aștepta introducerea datelor de la intrarea standard.
    Conform paginii manualului:
    grep caută în fișierele de intrare denumite liniile care conțin o potrivire cu MODELUL dat. Dacă nu sunt specificate fișiere sau dacă este dat fișierul „-”, grep caută intrări standard.
    De aceea îl puteți folosi în conducte, cum ar fi cel care analizează ieșirea din / proc / cpuinfo trecând ieșirea acestei comenzi ca intrare la grep puteți face căutarea.
    Un saludo

  2.   Ana el a spus

    Post foarte bun.
    O explici foarte bine și mergi direct la subiect.