31.05.2013 Views

Comandi Bash shell - SisInf Lab

Comandi Bash shell - SisInf Lab

Comandi Bash shell - SisInf Lab

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!