Les expressions regulars (regex) són una eina potent per a la manipulació i cerca de text. En aquest tema, aprendrem a utilitzar expressions regulars en Bash per a realitzar cerques complexes i manipulacions de text.

Continguts

  1. Què són les Expressions Regulars?
  2. Sintaxi Bàsica de les Expressions Regulars
  3. Comandes de Bash que Utilitzen Expressions Regulars
  4. Exemples Pràctics
  5. Exercicis Pràctics

  1. Què són les Expressions Regulars?

Les expressions regulars són patrons utilitzats per a coincidir amb seqüències de caràcters dins de cadenes de text. Són molt útils per a tasques com la validació de dades, la cerca i substitució de text, i l'extracció d'informació.

  1. Sintaxi Bàsica de les Expressions Regulars

Caràcters Especials

Caràcter Descripció
. Coincideix amb qualsevol caràcter excepte el salt de línia
^ Coincideix amb el començament de la línia
$ Coincideix amb el final de la línia
* Coincideix amb zero o més repeticions del caràcter anterior
+ Coincideix amb una o més repeticions del caràcter anterior
? Coincideix amb zero o una repetició del caràcter anterior
[] Coincideix amb qualsevol dels caràcters dins dels claudàtors
` `
() Agrupa una part de l'expressió regular

Exemples de Patrons

  • a.b coincideix amb qualsevol cadena que contingui 'a' seguit de qualsevol caràcter i després 'b' (ex: acb, a1b).
  • ^abc coincideix amb qualsevol cadena que comenci amb 'abc'.
  • xyz$ coincideix amb qualsevol cadena que acabi amb 'xyz'.
  • a* coincideix amb zero o més 'a' (ex: ``, a, aaa).
  • [0-9] coincideix amb qualsevol dígit.

  1. Comandes de Bash que Utilitzen Expressions Regulars

grep

La comanda grep s'utilitza per a cercar text dins de fitxers utilitzant expressions regulars.

grep 'pattern' filename

sed

La comanda sed s'utilitza per a l'edició de text en fluxos de dades.

sed 's/pattern/replacement/' filename

awk

La comanda awk és una eina potent per a la manipulació de text i dades.

awk '/pattern/ { action }' filename

  1. Exemples Pràctics

Exemple 1: Cercar Línies que Comencen amb un Caràcter Específic

grep '^A' fitxer.txt

Aquest exemple cerca totes les línies en fitxer.txt que comencen amb la lletra 'A'.

Exemple 2: Substituir Text amb sed

sed 's/foo/bar/g' fitxer.txt

Aquest exemple substitueix totes les ocurrències de 'foo' per 'bar' en fitxer.txt.

Exemple 3: Filtrar Línies amb awk

awk '/error/ { print $0 }' fitxer.txt

Aquest exemple imprimeix totes les línies en fitxer.txt que contenen la paraula 'error'.

  1. Exercicis Pràctics

Exercici 1: Cercar Adreces de Correu Electrònic

Escriu una comanda grep per a cercar adreces de correu electrònic en un fitxer correus.txt.

grep '[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}' correus.txt

Exercici 2: Substituir Números de Telèfon

Escriu una comanda sed per a substituir números de telèfon en el format (123) 456-7890 per 123-456-7890 en un fitxer telefons.txt.

sed 's/(\([0-9]\{3\}\)) \([0-9]\{3\}\)-\([0-9]\{4\}\)/\1-\2-\3/g' telefons.txt

Exercici 3: Filtrar Línies amb Data

Escriu una comanda awk per a filtrar línies que contenen una data en el format YYYY-MM-DD en un fitxer registre.txt.

awk '/[0-9]{4}-[0-9]{2}-[0-9]{2}/ { print $0 }' registre.txt

Conclusió

Les expressions regulars són una eina essencial per a qualsevol programador que treballi amb text. Amb la pràctica, es poden utilitzar per a realitzar cerques i manipulacions de text molt complexes de manera eficient. En aquest tema, hem cobert la sintaxi bàsica de les expressions regulars, comandes de Bash que les utilitzen, i hem proporcionat exemples i exercicis pràctics per a reforçar els conceptes apresos.

© Copyright 2024. Tots els drets reservats