![Asus Zenfone 5 Lite cu patru camere, ecran FHD + scurs](/f/3fb1d743f08e10919edde8cf84573ff2.jpg?width=100&height=100)
V-ați confruntat vreodată cu sarcina de a căuta un anumit șir sau model într-un fișier, dar nu aveți idee de unde să începeți să căutați? Ei bine, aici este grep la salvare!
grep este un căutător puternic de modele de fișiere care vine echipat la fiecare distribuție de Linux. Dacă, din orice motiv, nu este instalat pe sistemul dvs., îl puteți instala cu ușurință prin intermediul managerului de pachete (apt-get pe Debian/Ubuntu și da pe RHEL/CentOS/Fedora).
$ sudo apt-get install grep # Debian / Ubuntu
$ sudo yum instala grep # RHEL / CentOS / Fedora
Am descoperit că cel mai simplu mod de a te uda cu picioarele grep este să te scufunzi direct și să folosești câteva exemple din lumea reală.
Să presupunem că tocmai ați instalat o copie nouă a noii Ubuntu pe mașina dvs. și pe care o veți da Piton scriptarea unei fotografii. Ați parcurs pe web căutând tutoriale, dar vedeți că există două versiuni diferite de Piton în utilizare și nu știți care a fost instalat pe sistemul dvs. de către
Ubuntu instalator sau dacă a instalat module. Pur și simplu rulați această comandă:# dpkg -l | grep -i python
ii python2.7 2.7.3-0ubuntu3.4 Limbaj interactiv orientat la obiect la nivel înalt (versiunea 2.7) ii python2.7-minimal 2.7.3-0ubuntu3.4 Subset minim al limbajului Python (versiunea 2.7) ii python-openssl 0.12-1ubuntu2.1 Python wrapper în jurul bibliotecii OpenSSL. ii python-pam 0.4.2-12.2ubuntu4 O interfață Python către biblioteca PAM
În primul rând, am fugit dpkg –l, care listează instalat * .deb pachetele din sistemul dvs. În al doilea rând, am canalizat acea ieșire la grep –i python, care stări simple „du-te la grep și filtrează și returnează totul cu‘ python ’în el”. –I opțiunea este acolo pentru a ignora minuscule, ca grep este sensibil la majuscule și minuscule. Folosind –I opțiunea este un bun obicei de a intra, cu excepția cazului în care, bineînțeles, încercați să înțelegeți o căutare mai specifică.
grep poate fi, de asemenea, utilizat pentru a căuta și filtra în fișiere individuale sau mai multe fișiere. Să luăm acest scenariu:
Aveți unele probleme cu dvs. Server web Apache, și ați contactat unul dintre numeroasele forumuri minunate de pe net cerând ajutor. Sufletul amabil care îți răspunde ți-a cerut să postezi conținutul tău /etc/apache2/sites-available/default-ssl fişier. Nu ar fi mai ușor pentru tine, tipul care te ajută și pentru toți cei care îl citesc, dacă ai putea elimina toate liniile comentate? Ei bine, puteți! Doar rulați acest lucru:
# grep –v „#” / etc / apache2 / sites-available / default-ssl
–V opțiunea spune grep pentru a inversa ieșirea, ceea ce înseamnă că, în loc să imprimați linii potrivite, faceți opusul și imprimați toate liniile care nu se potrivesc cu expresia, în acest caz, # liniile comentate.
grep poate fi foarte util pentru filtrarea de la stdout. De exemplu, să presupunem că aveți un întreg folder plin de fișiere muzicale într-o grămadă de formate diferite. Vrei să găsești toate * .mp3 fișiere de la artist Jay Z, dar nu doriți niciuna dintre piesele remixate. Folosind un găsi comanda cu o pereche de grep conductele vor face trucul:
# găsi. –Nume „* .mp3” | grep –i JayZ | grep –vi „remix”
În acest exemplu, folosim find pentru a imprima toate fișierele cu un * .mp3 extensie, conducte la grep –i pentru a filtra și tipări toate fișierele cu numele „Jay Z”Și apoi încă o țeavă către grep –vi care filtrează și nu tipărește toate numele de fișiere cu șirul (în orice caz) ”remixează”.
Citire sugerată:35 Exemple practice de comandă Găsire Linux
O altă pereche de opțiuni sunt -A și –B comutatoare, care afișează linia potrivită și numărul de linii care apar înainte sau după șirul de căutare. În timp ce pagina manual oferă o explicație mai detaliată, mi se pare cel mai ușor să-mi amintesc opțiunile ca -A = după, și –B = inainte de:
# ifconfig | grep –A 4 eth0. # ifconfig | grep -B 2 UP
Grep’s –C opțiunea este similară, dar în loc să imprime liniile care vin înainte sau după șir, imprimă liniile în ambele direcții:
# ifconfig | grep –C 2 lo
Similar cu conducta a grep șir la număr de cuvinte (toaleta program) opțiunea încorporată grep poate funcționa la fel:
# ifconfig | grep –c inet6
–N opțiune pentru grep este foarte util la depanarea fișierelor în timpul erorilor de compilare. Afișează numărul liniei în fișierul șirului de căutare dat:
# grep –n configurare „principală ”..py
Dacă doriți să căutați un șir în directorul curent împreună cu toate subdirectoarele, puteți specifica –R opțiune de căutare recursivă:
# grep –r „funcție” *
Trecând de –W opțiunea pentru grep caută întregul model care se află în șir. De exemplu, folosind:
# ifconfig | grep –w „RUNNING”
Va imprima linia care conține modelul între ghilimele. Pe de altă parte, dacă încercați:
# ifconfig | grep –w „RUN”
Nimic nu va fi returnat deoarece nu căutăm un model, ci un cuvânt întreg.
Merită unele mențiuni sunt derivatele grep. Primul este zgrep, care, similar cu zcat, este pentru utilizare pe gzipped fișiere. Este nevoie de aceleași opțiuni ca grep și este utilizat în același mod:
# zgrep –i eroare /var/log/syslog.2.gz
egrep este un alt derivat care înseamnă „Expresie regulată globală extinsă”. Recunoaște metacaracterele de expresie suplimentare la +? | și ().
Citire sugerată:Care este diferența dintre Grep, Egrep și Fgrep în Linux?
egrep este foarte util pentru căutarea fișierelor sursă și a altor bucăți de cod, dacă este nevoie. Poate fi invocat din grep obișnuit prin specificarea –E opțiune.
# grep –E
fgrep caută un fișier sau o listă de fișiere pentru un șir de tipar fix. Este la fel ca grep –F. Un mod obișnuit de utilizare fgrep este să îi transmiteți un fișier de modele:
# fgrep –f file_full_of_patterns.txt file_to_search.txt
Acesta este doar un punct de plecare cu grep, dar după cum probabil puteți vedea, este de neprețuit pentru o varietate de scopuri. În afară de comenzile simple pe o linie pe care le-am implementat, grep poate fi folosit pentru a scrie puternic cron locuri de muncă și robuste scripturi shell, pentru inceput.
Fii creativ, experimentează cu opțiunile din pagina man, și vino cu expresii grep care servesc scopurilor tale!