Comanda GREP


Comanda grep este un instrument extrem de puternic și util în Unix/Linux pentru căutarea textului în fișiere. Numele provine din expresia „Global Regular Expression Print”. Este folosit pentru a căuta potriviri ale unui șablon specific (de obicei, un șir de caractere sau o expresie regulată) în fișiere sau fluxuri de text.

Sintaxa de bază:

bash

grep [opțiuni] <șablon> <fișier>

Exemple de utilizare:

  1. Căutarea unui cuvânt într-un fișier:

    bash

    grep "cuvânt" fișier.txt

    Afișează toate liniile din fișier.txt care conțin „cuvânt”.

  2. Căutare recursivă în directoare:

    bash

    grep -r "cuvânt" /cale/către/director

    Caută „cuvânt” în toate fișierele din directorul specificat și subdirectoare.

  3. Potriviri insensibile la majuscule/minuscule:

    bash

    grep -i "Cuvânt" fișier.txt

    Găsește „Cuvânt”, „cuvânt”, „CUVÂNT” etc.

  4. Numerotarea liniilor cu potriviri:

    bash

    grep -n "cuvânt" fișier.txt

    Afișează liniile și numerele lor.

  5. Doar liniile potrivite (fără context):

    bash

    grep -o "cuvânt" fișier.txt

    Afișează doar cuvântul „cuvânt” de fiecare dată când apare.

  6. Excluderea potrivirilor:

    bash

    grep -v "cuvânt" fișier.txt

    Afișează liniile care nu conțin „cuvânt”.

  7. Căutare cu expresii regulate:

    bash

    grep -E "cuvânt|alt" fișier.txt

    Găsește „cuvânt” sau „alt” în fișier.

  8. Afișarea numelui fișierelor care conțin potriviri:

    bash

    grep -l "cuvânt" *.txt

    Listează doar fișierele care conțin „cuvânt”.

Opțiuni frecvent utilizate:

  • -c: Afișează numărul de potriviri în locul liniilor.
  • -w: Potrivire exactă a unui cuvânt întreg.
  • -h: Nu afișează numele fișierului înainte de linii (util în căutările din mai multe fișiere).
  • -A NUMAR: Afișează NUMĂR de linii după potrivirea găsită (context).
  • -B NUMAR: Afișează NUMĂR de linii înainte de potrivire.
  • -C NUMAR: Afișează NUMĂR de linii înainte și după potrivire.

Exemple avansate:

  1. Utilizare cu pipe:

    bash

    cat fișier.txt | grep "cuvânt"

    Sau:

    bash

    dmesg | grep "error"
  2. Grep pentru potriviri multiple:

    bash

    grep -e "cuvânt1" -e "cuvânt2" fișier.txt
  3. Căutare în fișiere binare:

    bash

    grep --binary-files=text "cuvânt" fișier.bin

Comenzi similare/extinse:

  • egrep (acum echivalent cu grep -E): suportă expresii regulate extinse.
  • fgrep (acum echivalent cu grep -F): căutare literală (fără expresii regulate).

Comentarii

Postări populare