Oggi parliamo di un comando utilissimo per filtrare il testo: grep. La sua funzione principale è proprio selezionare, da un testo o da un file, solo le righe che ci interessano. Qui lo vediamo nella sua forma più semplice, insieme alla redirezione dell’input.
Il file di prova
Nelle puntate precedenti, parlando di redirezione dell’output, abbiamo creato un file chiamato password.txt con una dozzina di password. Se non l’avete, lo potete generare così:
pwgen -nyc1 16 12 > password.txt
e guardare cosa contiene:
cat password.txt
Cercare una sequenza di caratteri
Supponiamo di voler sapere quali righe contengono la sequenza at. Il comando è grep seguito dalla stringa da cercare, e come input gli diamo il file con la redirezione dell’input, cioè il simbolo di minore:
grep at < password.txt
La redirezione dell’input prende il contenuto di un file e lo usa come input del comando che sta a sinistra. Nel nostro caso grep riceve il contenuto di password.txt e stampa solo le righe in cui compare la stringa. Il risultato, nel video, è una sola riga.
Un altro esperimento: quali sono le righe che contengono il numero 6?
grep 6 < password.txt
Ecco le righe che contengono il carattere 6.
Il file come argomento
La redirezione dell’input non è l’unico modo. Grep accetta anche il nome del file come argomento, ed è la forma che si usa di solito. Il risultato è identico:
grep at password.txt
grep 6 password.txt
Conclusione
Abbiamo visto come usare grep per filtrare il contenuto di un file di testo. Ha moltissime opzioni e può cercare in moltissimi modi, ed è molto utile soprattutto per filtrare file grandi. Nella prossima puntata vedremo come usare un altro sistema per unire i comandi, cioè dare in input a un comando l’output di un altro: la concatenazione con le pipe. Intanto aprite la Linux box e sperimentate.
Link e risorse
- il video su YouTube
- esempi e comandi della puntata su GitHub
- grep(1), pagina di manuale — il manuale completo
- grep(1) in italiano — in italiano
- Grep su Wikipedia — in italiano
Sostieni il canale
PER SOSTENERE IL CANALE BASTANO UN LIKE E UN’ISCRIZIONE!
questi link sono affiliati Amazon, acquistando i libri che ti consiglio sostieni il canale!
