REGULAR EXPRESSIONS

Precedente
Programma
Seguente
Bastard Operator From Hell!
egrep -i '(string1|string2)' file
  Ricerca e visualizza in un file string1 e string2
grep '^1' list.txt
  Ricerca in list.txt le righe che iniziano con 1
egrep '^2[234]' list.txt
  Ricerca le righe che iniziano con 22,23,24
grep '^Linux$' list.txt
  Ricerca le righe che contengono SOLO la parola Linux
grep -c '^$' list.txt
  Visualizza il numero di righe vuote in list.txt
grep '^[^0-9]' list.txt
  Visualizza le righe che NON iniziano con un numero
grep '\<[Ll]inux\>' list.txt
  Visualizza le righe che contengono la parola singola Linux o linus, ma non visualizza quelle con, per esempio, LinuxOS
Linux et cetera...
Qualunque utente di Dos o Unix ha gia' usato una forma di R.E.:
> dir *.exe
Tips & Tricks
Una buona conoscenze delle RE velocizza l'operazione di ricerca all'interno di file molto lunghi.
Le Regular Expressions (RegExp) sono un sistema di regole rivolte alla creazione di pattern di ricerca utili a trovare occorenze all'interno di un testo e a modificarle con altro testo. Da oltre vent'anni vengono usate in parecchi tool ed utility Unix come grep, sed oppure awk, spesso con piccole variazioni nella sintassi.

Le Regular Expressions sono case sensitive (ossia distinguono le maiuscole dalle minuscole) e seguono delle semplici regole di sintassi.

Forniscono la possibiltà di specificare quante volte può riscontrarsi il testo specificato preservando la validità della ricerca.
Le espressioni regolari operano sulle stringhe, e le stringhe più semplici sono costituite da singoli caratteri. La maggior parte dei caratteri corrisponde semplicemente a se stessa.
Alcuni caratteri assumono invece significati particolari e vengono chiamati metacaratteri.

Metacarattere Definizione
. identifica un singolo carattere
^

identifica l'inizio riga

\ neutralizza il significato del metacarattere seguente
$
identifica la fine della stringa
[] identifica qualsiasi carattere indicato tra parentesi
[^] identifica tutti i caratteri non specificati nell'insieme
[0-9] identifica ogni carattere compreso nell'intervallo (numeri o lettere)
Modificatori
? zero o una volta
+ una o più volte
* zero o più volte
| uno o l'altro elemento prima e dopo il segno |
WEB RESOURCES
http://www.linuxfocus.org/English/July1998/article53.html Regular Expressions
http://www.delorie.com/gnu/docs/rx/rx_3.html Posix Basic Regular Expressions
http://www.math.utah.edu/docs/info/regex_toc.html Regular expression matching library
http://www.lctn.com/~rjones/man/regexp.M.html Regexp -- basic, extended, and shell regular expressions