Hai mai avuto l’esigenza di cercare una stringa in un file su Linux? Di verificare la ricorrenza di un termine e la riga in cui è presente?
Questa esigenza nasce specialmente per chi sviluppa software ed ha necessità di ricercare una istruzione da modificare massivamente in tutti i files.
Su Linux non abbiamo bisogno di installare alcun software. Niente di più semplice da riga comandi!
Vediamo come.
Per ricercare in uno o più file le righe che corrispondono una stringa, si può utilizzare il comando grep.
Esempio:
grep testo * -rin
Vediamo di decifrare il comando:
- ricerca la stringa “testo”
- in tutti i files nella directory corrente (carattere ‘*’)
- ricorsivamente (opzione ‘-r’), in tutte le sottodirectory
- ignorando (opzione ‘-i’) la differenza tra i caratteri maiuscoli e minuscoli
- visualizza le righe che contengono la stringa testo indicando per ognuna il nome del file che la contiene e anche (opzione ‘-n’) il numero della riga nel file.
Se vogliamo raccogliere il risultato della ricerca in un file di testo in output è sufficiente aggiungere > nomefile.txt:
grep testo * -rin > nomefile.txt