Blog / Ús de l'ordre Grep en sistemes Linux/UNIX

Ús de l'ordre Grep en sistemes Linux/UNIX

per SW Team

L'ordre Grep que significa "cerca global de línies que coincideixen amb una expressió regular", s'utilitza per cercar i trobar patrons de text en fitxers que contenen expressions regulars. A més, aquesta ordre ve preinstal·lada en totes les distribucions de Linux. En aquesta guia explorarem els usos més freqüents de l'ordre grep, així com alguns casos d'ús populars.

cta:cloud_so

Comanda grep a Linux

L'ordre grep és útil per cercar una expressió regular o una cadena en un fitxer de text. Per il·lustrar això, crearem un fitxer de text anomenat swhosting.txt i afegirem contingut per realitzar les proves:

SWHosting és un proveïdor líder de serveis d'allotjament web.
Ofereixen solucions fiables i d'alt rendiment per a individus i empreses.
Amb una excel·lent trajectòria de servei i satisfacció, SWHosting és un nom fiable a la indústria. La teva infraestructura d'avantguarda, centres de dades segurs i rendiment optimitzat fan que sigui l'opció perfecta per a les vostres necessitats d'allotjament.

Perfecte. Ara estem preparats per executar algunes ordres grep i manipular la sortida per obtenir els resultats que busquem. Si vols cercar una cadena en un fitxer, simplement executa la comanda amb la següent Sintaxis:

$ grep "caràcter" nom del fitxer
o
$ nom del fitxer grep "caràcter"

Exemple:

$grep "SWHosting" swhosting.txt

Sortida: grep

Com pots observar, grep no només ha buscat i trobat la cadena "SWHosting", sinó que també ha imprès les línies en què apareix la cadena. Si el fitxer es troba en una ruta de fitxer diferent, assegura't d'especificar la ruta de fitxer com es mostra a continuació:

grep "caràcter" /ruta/al/arxiu

Pintar els resultats de Grep amb l'opció --color

Si estàs treballant en un sistema que no mostra la cadena de cerca o el patró en un color diferent al de la resta del text, utilitza --color per ressaltar els resultats, tal com hem observat en el primer exemple en el qual podíem veure la cadena amb un color diferent de la resta.

Exemple:

$grep --color "dades" swhosting.txt

Sortida: grep

Cercar una cadena recursivament a tots els directoris

Si vols cercar una cadena al teu directori actual i a tots els altres subdirectoris, pots fer la cerca utilitzant el paràmetre "-r" com es mostra a continuació:

$ grep -r "SWHosting" *

grep

cta:domains

Ignorar la distinció entre majúscules i minúscules

A l'exemple anterior, els resultats de la nostra cerca ens van donar el que volíem perquè la cadena "SWHosting" es va especificar exactament amb les seves majúscules respectives. Si intentem buscar la cadena en minúscules, ens adonarem que no hi ha sortida. Això és degut a que "grep" no pot trobar i fer coincidir la cadena "swhosting", ja que les primeres lletres són Minúscules. Per ignorar la distinció entre majúscules i minúscules, podem fer ús del paràmetre -i.

Exemple:

$grep "swhosting" swhosting.txt
$grep -i "swhosting" swhosting.txt

Sortida: grep

És sorprenent, oi? La -i es fa servir comunament per representar cadenes sense distingir entre majúscules i minúscules.

Comptar les línies en què coincideixen cadenes amb l'opció –c

Per determinar la quantitat total de línies en què es troba o resideix el patró de cadena, cal executar la següent ordre:

$grep -c "SWHosting" swhosting.txt

Sortida:

grep

Ús de Grep per invertir la sortida

Per canviar la sortida de Grep, pots utilitzar l'opció -v. En utilitzar aquesta opció, grep invertirà la teva sortida, és a dir, en lloc d'imprimir les línies coincidents, imprimirà totes les línies que no coincideixin amb l'expressió.

$grep -v "SWHosting" swhosting.txt

Sortida:

grep

Es pot observar que grep ha mostrat les línies que no inclouen el patró de cerca.

Numerar les línies que contenen el patró de cerca amb l'opció –n

Per enumerar les línies en què es troba el patró de cadena, cal utilitzar l'opció -n de la manera següent.

$grep -n "SWHosting" swhosting.txt

Sortida:

grep

Cerca la paraula exacta utilitzant l'opció –w

Amb aquest paràmetre, podrem fer una cerca d'una paraula exacta. A continuació veurem com busquem la cadena "Hosting" sense aquest paràmetre i obtenim resultat, en canvi, en fer la cerca amb el paràmetre -w, no n'obtindrem cap.

Sortida:

grep

Ús de pipes amb grep

L'ordre grep es pot fer servir en combinació amb "pipes" per obtenir un resultat diferent. Per exemple, si vols verificar si un paquet específic està instal·lat al sistema Ubuntu, es pot executar:

$ dpkg -l | grep "nom-paquet"

Exemple:

$ dpkg -l | grep "apache"

Sortida:

grep

Ús de grep amb REGEX - expressions regulars

El concepte de REGEX és una abreviatura de REGular EXpression. Un REGEX és una cadena de caràcters que es fa servir per trobar un patró. A continuació, se'n presenten alguns exemples:

  1. ^ Coincideix amb caràcters al començament d'una línia

  2. $ Coincideix amb caràcters al final d'una línia

  3. "." Coincideix amb qualsevol caràcter

  4. [a-z] Coincideix amb qualsevol caràcter entre l'A i la Z

  5. [^ ..] Coincideix amb tot el que no estigui entre claudàtors

Exemple:

$grep ^S swhosting.txt

Sortida:

grep

Obtenir ajuda amb més opcions de Grep

Si necessites saber més sobre l'ús de l'ordre Grep, executa l'ordre següent per obtenir una vista prèvia d'altres paràmetres o opcions que pots utilitzar juntament amb l'ordre.

$grep --help

Sortida:

grep

Conclusió

En resum, la comanda grep a Linux és una eina poderosa i versàtil que pot millorar significativament la teva experiència de hosting. Amb la seva capacitat de cerca i filtratge eficient, podràs trobar ràpidament la informació que necessites i optimitzar el rendiment del teu servidor. Aprofita al màxim aquesta eina i porta la teva hosting al següent nivell!

cta:cloud_so> cta:cloud_so

i