logo

Comanda Grep în Linux/Unix cu exemple

Comanda „grep” reprezintă „imprimare globală a expresiei regulate” . Comanda grep filtrează conținutul unui fișier, ceea ce ne ușurează căutarea.

Este un utilitar de linie de comandă pentru a căuta în grupuri de date în text simplu linii care sunt aceleași cu o expresie regulată. Numele 'prindere' vine de la comanda, adică ed, care conține același efect. Inițial, grep a fost proiectat pentru sistemul de operare Unix, dar a devenit disponibil pentru fiecare sistem asemănător Unix mai târziu și pentru alte câteva precum OS 9.

Filtrul grep găsește un fișier pentru un anumit model de caractere și arată fiecare linie care include acel model. Caracterele ar trebui să fie între ghilimele dacă apar în parametrul de model cu o semnificație specială pentru shell. De obicei, trebuie să închidem întregul model între ghilimele dacă parametrul modelului nu este un șir comun.

Într-o expresie ca [a-z], semnul minus (-) cml descrie un interval bazat pe ordinea curentă de colare. O ordine de comparare poate specifica clase echivalente în intervale de caractere pentru utilizare. Comanda grep presupune stdin atunci când nu sunt menționate fișiere.

Modelul se numește expresia regulată care se găsește în interiorul fișierului. Modelul este expresii regulate restricționate în formatul comenzii egrep sau ed. Comanda grep aplică un algoritm solid nedeterminist. Este util atunci când trebuie să filtram fișiere jurnal mari.

polimorfism java

Scurt istoric al grep

Înainte de a fi intitulat, grep era un utilitar confidențial specificat de Ken Thompson pentru a găsi fișiere pentru mai multe modele. Necunoscut de existența sa, Doug Mcllroy i-a cerut lui Thompson să specifice o astfel de funcție. Răspunzând că s-ar gândi peste noapte la o astfel de utilitate. Thompson a făcut îmbunătățiri și a corectat mlaștini timp de aproximativ o oră în programul său cunoscut sub numele 's' (sau caută). I-a prezentat funcția lui Mcllroy a doua zi, care a spus că este același lucru pe care și-a dorit el. Relatarea lui Thompson poate descrie credința că comanda grep a fost specificată peste noapte.

Thompson a specificat versiunea inițială în limbajul de asamblare PDP-11 pentru suport Lee E. McMohan verificarea textului Federalist Papers pentru a decide calitatea de autor al lucrării individuale. Editorul de text editat avea suport pentru expresia regulată, dar nu putea fi folosit pe un text atât de mare; Thompson a copiat acel cod într-un instrument independent. A ales numele datorita in ed; comanda grep ar tipări fiecare linie la fel ca modelul descris. Mai întâi, grep a fost adăugat în versiunea 4 Unix, spunând asta „este în general citat ca instrument software prototip” , Mcllroy a aprobat grep cu „înrădăcinat irevocabil” filozofia instrumentelor lui Thompson în Unix.

Implementări grep

O serie de implementări grep este prezentă în mai multe medii de dezvoltare software și sisteme de operare. Versiunile timpurii au inclus fgrep și egrep, introduse în versiunea 7 a Unix. Versiunea egrep acceptă sintaxa pentru o expresie regulată extinsă inclusă de Alfred Aho după implementarea originală a expresiei regulate a lui Ken Thompson. Versiunea fgrep găsește orice listă de șiruri fixe cu Algoritmul de potrivire a șirurilor Aho-Corasick . Aceste versiuni binare sunt disponibile în sistemele moderne, conectându-se la grep sau apelând grep un script shell utilizând indicatorul corect adăugat în timp ce sunt implementate în general pe sistemele POSIX.

Alte comenzi includ 'prindere' cuvânt pentru a reprezenta ei sunt instrumente de căutare, de obicei cele care depind de potrivirile expresiilor regulate. De exemplu, utilitatea, adică 'pgrep' , arată procesele ale căror titluri sunt aceleași cu expresia regulată furnizată.

  • Grep este titlul funcției încorporate care caută elementele dintr-o listă care distrează o anumită proprietate în Perl limbaj de programare.
  • De obicei, această funcție de ordin superior este numită 'filtru' sau 'Unde' într-o altă limbă.
  • Comanda, adică pcregrep , este o implementare grep care utilizează sintaxa pentru expresia regulată Perl. Aceeași funcționalitate poate fi adăugată la versiunea grep GNU folosind steag-ul -P.
  • De asemenea, porturile grep (de exemplu, în GnuWin32 și Cygwin ) se execută pe Microsoft Windows. Câteva versiuni de Windows oferă aceeași comandă findstr sau qgrep.
  • De asemenea, comanda grep face parte din instrumentele MSX-DOS2 ale ASCII pentru versiunea 2 a MSX-DOS.
  • Comenzile fgrep, egrep și grep au fost livrate către sistemul de operare IBM i.
    Software-ul Adobe InDesign are funcții GREP (din ediția CS3) în caseta de dialog pentru modificarea/găsirea filei „GREP” și specificate folosind CS4 în „Stiluri GREP” stiluri de paragraf.

Cum se instalează grep în Linux?

Grep vine preinstalat în aproape fiecare distribuție de Linux. Cu toate acestea, în cazul în care, îl putem instala cu comanda de mai jos în fereastra terminalului dacă lipsește din sistemul nostru:

 $ sudo apt-get install grep 

grep cu teava

Comanda „grep” este utilizată în general cu pipe (|) .

Sintaxă:

 command | grep 

Exemplu:

 cat marks.txt | grep 9 

Filtre Linux Grep1

Uitați-vă la instantaneul de mai sus, comanda grep filtrează toate datele care conțin „9”.

reporniți mysql ubuntu

grep fara teava

Poate fi folosit si fara teava.

Sintaxă:

 grep 

Exemplu:

 grep 9 marks.txt 

Filtrele Linux Grep2

Uită-te la instantaneul de mai sus, comanda grep face aceeași activitate ca exemplul anterior, dar fără conductă.

opțiuni grep

    grep -vM: Comanda „grep -v” afișează linii care nu se potrivesc cu cuvântul specificat.

    Sintaxă:

    forma completă ssh
     grep -v 

    Exemplu:

     grep -v 9 marks.txt 

    Filtrele Linux Grep3

    Uită-te la instantaneul de mai sus, comandă „grep -v 9 marks.txt” afișează liniile care nu conțin cuvântul nostru de căutare „9”.

    grep -i: Comanda 'grep -i' filtrează ieșirea fără a ține seama de majuscule și minuscule.

    Sintaxă:

     grep -i 

    Exemplu:

     grep -i red exm.txt 

    Filtre Linux Grep4

    Uită-te la instantaneul de mai sus, comandă „grep -i red exm.txt” afișează toate liniile care conțin „roșu”, fie că sunt litere mari sau mici.

    grep -A/ grep -B/ grep -C

    grep -O comandă este folosită pentru a afișa linie după rezultat .

    Comanda grep -B este folosită pentru a afișa rând înainte de rezultat .

    deschide meniul de setări

    Comanda grep -C este folosită pentru a afișa rând după și rând înainte Rezultatul.

    Puteți utiliza (A1, A2, A3.....)(B1, B2, B3....)(C1, C2, C3....) pentru a afișa orice număr de linii.

    Sintaxă:

     grep -A grep -B grep -C 

    Exemplu:

     grep -A1 yellow exm.txt grep -B1 yellow exm.txt grep -C1 yellow exm.txt 

    Filtre Linux Grep5

    Uită-te la instantaneul de mai sus, comandă „grep -A1 galben exm.txt” afișează linia căutată cu următoarea linie următoare, comanda „grep -B1 galben exm.txt” afișează linia căutată cu o linie anterioară și comanda „grep -C1 galben exm.txt” afișează linia căutată cu o linie precedentă și una următoare.