După cum sugerează și numele grep, modelul de căutat este descris folosind o expresie regulată. Expresia regulată este un tip special de șir care descrie un model pentru a se potrivi, localiza și gestiona. Pentru a afla mai multe despre grep și expresia regulată, verificați folosind grep și egrep cu expresie regulată.
În scop demonstrativ, apucați un fișier text exemplar. În acest exemplu, descărcați GNU General Public License v3.0 fișier text.
Căutare de bază
Modul fundamental de utilizare a grep este căutarea unui șir de bază.
Aruncați o privire la următoarea comandă grep. Va căuta cuvântul „GNU” în fișierul text.
$ grep "GNU" gpl-3.0.txt
Pentru a afișa numărul liniei, utilizați steagul „-n”.
$ grep -n „GNU” gpl-3.0.txt
Pentru a efectua o căutare diferențiată de majuscule și minuscule folosind grep, utilizați semnalizatorul „-i”.
$ grep -ni „gnu” gpl-3.0.txt
Este posibil să nu doriți să vedeți potrivirile de căutare, ci doar numele fișierului în care s-a întâmplat potrivirea în anumite situații. Pentru a imprima doar numele fișierului, utilizați semnalizatorul „-l”. Aici, asteriscul indică utilizarea tuturor fișierelor text din directorul curent.
$ grep -l „gnu” *
De asemenea, putem canaliza ieșirea altor comenzi către grep.
$ cat gpl-3.0.txt | grep -n „GNU”
Expresie uzuala
Regex oferă un mod inteligent de a regla fin căutarea. Are propriile reguli. Cu toate acestea, diferite aplicații și limbaje de programare implementează expresia regulată diferit. Iată câteva exemple pe care le puteți folosi cu grep.
Pentru a defini că șirul se găsește la pornirea unei linii, utilizați simbolul caret (^).
$ grep -n „^ GNU” gpl-3.0.txt
Pentru a defini că șirul se găsește la sfârșitul unei linii, utilizați semnul dolar ($).
$ grep -n „la $” gpl-3.0.txt
Pentru a descrie că poate exista orice caracter la o anumită locație a modelului, utilizați caracterul punct (.). De exemplu, expresia „G.U ”este valid dacă există un caracter între„ G ”și„ U ”.
$ grep -n „G.U ”gpl-3.0.txt
Pentru a descrie că poate exista un subset de caractere la o anumită locație a modelului, utilizați parantezele ([]). De exemplu, expresia „t [wo] o” spune că potrivirea este valabilă numai pentru „doi” și „prea”.
$ grep -n „t [wo] o” gpl-3.0.txt
Expresie regulată extinsă
După cum sugerează și numele, o expresie regulată extinsă poate face lucruri mai complexe decât expresiile regulate de bază. Pentru a utiliza expresia regulată extinsă cu grep, trebuie să utilizați steagul „-E”.
$ grep -nE Pentru a căuta două șiruri diferite, utilizați operatorii OR (|).
$ grep -nE „GNU | General | License” gpl-3.0.txt
Găsirea textului în fișiere
Acum vine partea principală. În loc să-i spună manual fișierului grep să efectueze căutarea, grep îl poate face automat. În următoarea comandă, grep va utiliza toate fișierele text disponibile din directorul curent pentru căutarea modelului.
$ grep * Dacă doriți să grep pentru a efectua căutarea într-un alt director, atunci trebuie să specificați locația.
$ grep
Dacă există foldere, grep nu le explorează în mod implicit. Pentru a spune grep să caute recursiv, utilizați steagul „-R”.
$ grep -nR
Grep GUI
Dacă preferați să lucrați cu interfața grafică, dar doriți totuși să vă bucurați de funcțiile grep, consultați searchmonkey. Este o soluție front-end pentru grep. Pachetul este disponibil pe aproape toate distribuțiile principale Linux.
Găsiți text în fișiere folosind nano
GNU Nano este un editor de text simplu și puternic care vine cu orice distribuție Linux. Are funcții încorporate pentru a căuta text într-un fișier text.
Rețineți că, în această metodă, trebuie să deschideți fișierul text și să căutați manual. Este posibil dacă există doar o mână de fișiere text cu care să lucrați. Dacă există mai multe, atunci utilizarea grep este cea mai optimă alegere.
Deschideți fișierul text în nano.
$ nano
Pentru a căuta o potrivire de șiruri, apăsați „Ctrl + W”. După ce tastați șirul de căutat, apăsați „Enter”.
Găsiți text în fișiere folosind Vim
Vim este un editor de text bine cunoscut și reputat. Este echivalentul liniei de comandă a unui editor de text modern. Vim vine cu numeroase funcții avansate, cum ar fi plugin-uri, macrocomenzi, completare automată, filtre etc.
Similar cu nano, Vim funcționează cu un singur fișier la un moment dat. Dacă aveți mai multe fișiere text, atunci utilizarea grep este cea mai optimă cale de parcurs.
Pentru a căuta într-un fișier text, deschideți-l mai întâi în Vim.
$ vim
Introduceți următoarea comandă Vim și apăsați „Enter”.
$: /
Găsiți text în fișiere folosind Editorul de text GNOME
Editorul de text GNOME este editorul de text care vine cu desktopul GNOME. Este un editor de text simplist, cu toate caracteristicile de bază la care te-ai aștepta. Este o alternativă plăcută la editorii de text din linia de comandă.
Similar cu nano și vim, aceeași precauție se aplică acestei metode. Dacă numărul fișierelor text este mare, atunci mai bine rămâneți cu grep.
Deschideți fișierul text în Editorul de text. Apăsați „Ctrl + F” pentru a afișa bara de căutare.
Găsiți text în fișiere folosind VS Code
Visual Studio Code este un editor de text puternic, cu multe funcții. Este optimizat pentru ca programatorii să poată fi folosiți ca și cum ar fi un IDE cu drepturi depline. Este disponibil pe aproape toate distribuțiile principale Linux.
Instalați pachetul snap Visual Studio Code.
$ sudo snap install code --classic
Deschideți fișierul text în VS Code. Apăsați „Ctrl + F” pentru a începe căutarea.
Gânduri finale
Există numeroase modalități de a căuta text în fișiere. Este o sarcină ușor de stăpânit. Este foarte recomandat să stăpânești comanda grep, deoarece oferă cea mai mare valoare din punct de vedere al eficienței și ușurinței de utilizare.
Dacă preferați GUI, atunci există numeroși editori de text din care să alegeți. Orice editor de text modern va oferi opțiunea de căutare a textului.
Calcul fericit!