Ce face grep
Comanda grep (Global Regular Expression Print) este cel mai puternic și folosit utilitar de căutare de text din linia de comandă. Scanează fișiere sau fluxuri de intrare linie cu linie și afișează doar rândurile care conțin tiparul dorit.
Acceptă expresii regulate extinse (ERE prin -E sau egrep), căutare recursivă în subdirectoare (-r) și excluderi (-v).
Opțiuni și argumente
| Opțiune / Parametru | Descriere |
|---|---|
-i, --ignore-case |
Ignoră diferența dintre majuscule și minuscule. |
-r, -R, --recursive |
Caută recursiv în toate fișierele din toate subdirectoarele. |
-n, --line-number |
Afișează numărul liniei din fișier unde a fost găsită potrivirea. |
-v, --invert-match |
Inversează potrivirea: afișează doar liniile care NU conțin tiparul căutat. |
-c, --count |
Afișează doar numărul total de linii potrivite, nu conținutul lor. |
-E, --extended-regexp |
Activează expresiile regulate extinse (operatori |, +, ?). |
-w, --word-regexp |
Potrivește doar cuvinte întregi, nu părți din cuvinte. |
Exemple
Exemplul 1: Căutare simplă insensibilă la majuscule
Căutăm cuvântul ‘eroare’ indiferent dacă e scris cu literă mare sau mică.
cat << 'EOF' > server.log
[INFO] Aplicatia a pornit
[ERROR] Baza de date nu raspunde
[warning] Conexiune lenta
[error] Timeout la cerere
EOF
grep -i "error" server.log
Rezultat
[ERROR] Baza de date nu raspunde
[error] Timeout la cerere
Exemplul 2: Filtrare inversă (excluderea comentariilor)
Opțiunea -v ascunde rândurile care încep cu diez (#) sau sunt goale.
cat << 'EOF' > config.cfg
# Setari retea
PORT=80
# Setari cache
CACHE=true
EOF
grep -v "^#" config.cfg
Rezultat
PORT=80
CACHE=true
Greșeli frecvente
- Uitarea ghilimelelor în jurul tiparului când acesta conține spații sau caractere speciale de shell (cum ar fi
*sau?), ceea ce face ca shell-ul să le expandeze greșit înainte ca grep să le primească.
Comenzi înrudite
find: Caută fișiere și directoare în mod recursiv pe baza numelui, tipului, mărimii sau datei.awk: Limbaj de procesare a textului structurat pe coloane, ideal pentru rapoarte și extragere de date.sed: Editor de flux (stream editor) pentru transformarea, înlocuirea și filtrarea automată a textului.