Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
CORSO DI FONDAMENTI DEI SISTEMI OPERATIVI<br />
A.A. 2012-2013<br />
(Prof. G. Piscitelli)<br />
L'espressione regolare '\' visualizza le righe contenenti stringhe che cominciano con numeri<br />
aventi almeno quattro cifre.<br />
Regole di precedenza degli operatori<br />
Nell'interpretazione delle espressioni regolari le operazioni sulle espressioni vengono valutate nel seguente<br />
ordine<br />
1) ripetizione<br />
2) concatenazione<br />
3) alternanza<br />
Le parentesi tonde possono essere utilizzate per modificare quest'ordine predefinito.<br />
L'espressione regolare 'a|bc+', esplicitando l'ordinamento delle operazioni, equivale a: '(a|(b(c+)))' overo ricerca<br />
stringhe del tipo {a, bc, bcc, bccc...}.<br />
Con le parentesi tonde possiamo modificare l'ordinamento delle operazioni:<br />
con 'a|(bc)+' ricerchiamo stringhe del tipo {a, bc, bcbc...};<br />
con '(a|b)c+' ricerchiamo stringhe del tipo {ac..., bc...}.<br />
<strong>Comandi</strong> di ricerca di stringhe<br />
grep<br />
Il comando grep (Global Regular Expression Print) viene utilizzato per cercare stringhe all'interno di un file.<br />
SINTASSI: $ grep [opzioni] 'pattern' [file]<br />
pattern è un'espressione regolare. Se il file non è specificato, grep opera sullo standard input.<br />
Opzioni:<br />
-v Stampa le righe che non contengono stringhe corrispondenti al pattern<br />
-n Antepone il numero di riga<br />
-c Visualizza soltanto quante righe contengono stringhe corrispondenti al pattern<br />
-i Rende il comando case-insensitive<br />
--color Evidenzia, colorandola, l'occorrenza del pattern all'interno della riga<br />
-E Abilita l'interpretazione di espressioni regolari estese<br />
I caratteri ?, +, {, }, |, (, e ), se utilizzati con grep che interpreta espressioni regolari base (in assenza dell'opzione<br />
-E), vanno preceduti dal carattere di escape \. Se si utilizzano con egrep o con l'opzione -E di grep, che abilita<br />
l'interpretazione di espressioni regolari estese, non è necessario anteporre il carattere \. La differenza è solo nella<br />
sintassi dell'espressione regolare non nella sua funzionalità: $ grep 'a\+' equivale a $ egrep 'a+'.<br />
Quando si proteggono gli argomenti del pattern di grep con gli apici singoli, si preclude l'utilizzo di variabili. In<br />
alcuni casi si possono utilizzare gli apici doppi, che non impediscono la sostituzione della variabile con il suo<br />
valore.<br />
$ grep “^$USER:” /etc/passwd (si veda la sezione Variabili)<br />
Esempi:<br />
Sia dato il seguente file di test denominato 'file':<br />
fughe<br />
coda<br />
bada<br />
MAIUSCOLE<br />
a1<br />
Esercitazioni comandi <strong>shell</strong> <strong>Bash</strong> (Ing. S. Giannini) Pagina 20