Lo scopo di questo capitolo è presentare alcuni strumenti da linea di comando che possono tornare utili nell'uso quotidiano. Naturalmente potete evitare di leggerlo se intendete usare unicamente l'ambiente grafico, ma un rapido sguardo potrebbe farvi cambiare idea :-).
Questo capitolo non ha una vera e propria struttura, i comandi sono elencati così come capita, dal più comunemente usato al più oscuro. Ciascun comando sarà accompagnato da un esempio, ma la ricerca di altri usi interessanti per gli stessi comandi sarà lasciata a voi, come esercizio.
Va bene, il nome non è molto intuitivo, e non lo è neanche l'acronimo, ma il suo scopo è semplice: cercare in uno o più file un modello (ingl. pattern) di testo immesso come argomento. La sua sintassi è:
grep [opzioni] <modello> [uno o più file] |
-i: fa una ricerca che non distingue fra maiuscole e minuscole.
-v: inverte la ricerca: mostra le righe che non contengono corrispondenze.
-n: mostra il numero di riga per ogni riga in cui viene trovata una corrispondenza.
-w: dice a grep che il modello deve corrispondere a una parola intera.
Ecco un esempio di come usarlo:
$ cat my_father Hello dad Hi daddy So long dad # Cerca la stringa "hi", nessuna differenza tra maiuscole e minuscole $ grep -i hi my_father Hi daddy # Cerca la stringa "dad" come parola intera, e stampa # il numero di riga prima di ogni occorrenza $ grep -nw dad my_father 1:Hello dad 3:So long dad # Adesso vogliamo tutte le righe che non cominciano con "H" $ grep -v "^H" my_father So long dad $ |
Se volete usare grep in una pipe non dovete indicare il nome di un file, poiché come comportamento predefinito il comando preleva il suo ingresso dallo standard input. Allo stesso modo, come comportamento predefinito, il comando stampa il risultato sullo standard output, quindi potete indirizzare l'output di un grep verso un altro programma senza alcun problema. Ad esempio:
$ cat /usr/share/doc/HOWTO/Parallel-Processing-HOWTO | \ grep -n thread | less |