GREP Tutorial per Unix

December 5

Ricerca di un evento di un modello di caratteri specificato all'interno di un file o di standard input è un compito comune per gli utenti Unix. Il comando "grep" gestisce questo compito. La ricerca rispecchia un certo modello e stampa il risultato allo standard output (lo schermo). Il comando prende il primo argomento come la ricerca del modello, e il resto degli argomenti come nomi di file.

Uso di base

Il comando grep può prendere un semplice stringa o un'espressione regolare come il suo modello e sarà la ricerca in uno o più file. Ad esempio, "grep Gordon employee.lst" cercherà il modello di "Gordon" nel file "employee.lst". Per cercare più parole stringhe, racchiudere il modello tra virgolette, sia doppia o singola. È possibile utilizzare virgolette singole fino a quando il modello non contiene virgolette singole (come ad esempio il nome di O'Neal). Ad esempio, "grep 'James Miller' employee.lst" tornerà ogni occorrenza di "James Miller". Tuttavia, "grep 'Sam O'Malley' employee.lst" fallirà. Invece, si utilizzerà la sintassi "grep" Sam O'Malley "employee.lst".

È inoltre possibile utilizzare le espressioni regolari al fine di corrispondere un gruppo di modelli simili. Le espressioni regolari utilizza le classi di caratteri racchiusi tra parentesi quadre ([]) e metacaratteri per specificare più di un pattern all'interno di una singola stringa. La lista completa dei metacaratteri utilizzati da grep si può trovare nella pagina man grep (vedi Risorse, di seguito). Un esempio di una ricerca utilizzando metacaratteri sarebbe: "grep" Wilco [CX] k s "employee.lst". Questa ricerca dice ricerca del "Wilco" stringa e sia "C" o "x"; le lettere "k" e "s" sono o non verificarsi affatto. Il comando restituirà tutte le istanze di "Wilcox" e "Wilcocks."

Opzioni di comando

Il comando grep prende anche una serie di opzioni che influenzano l'output del comando. L'elenco completo si può trovare nella pagina man, ma ci sono alcune fra le più comuni.

L'opzione "-c" visualizza un conteggio del numero di occorrenze del pattern.

L'opzione "-n" viene visualizzato il numero di riga e le righe che contengono il pattern.

Il "-v" opzione visualizza la linea o le linee non corrisponde al modello.

Il "-i" opzione ignora il caso del modello.

Uso di grep con altri comandi

Ci sono momenti in cui si desidera eseguire un comando e la ricerca di un modello in uscita di quel comando. In questo caso, si combinano i due comandi con il tubo | dell'operatore (). Un esempio frequente di questo è quando si è alla ricerca di un certo processo in Unix. Per fare questo, si pipe il comando "ps - ef" in grep: "ps -ef | grep bash". Come in una ricerca di file, è possibile utilizzare sia semplici ricerche di stringhe o espressioni regolari.