Cercare un testo con grep in Linux

Cercare un testo con grep in Linux

L'altro giorno dovevo cercare una porzione di testo dentro parecchi file.

Anche se i file erano quasi tutti dentro la stessa directory, non mi andava di cercare dentro ogni singolo file uno alla volta!

Per fare una ricerca massiva, mi è venuto in soccorso grep.

Quindi questa guida è valida se stato usando Linux, Mac OS X o una BSD.

Detto ciò, facciamo un esempio banale.

Dentro la mia home ho messo un file con questo testo:

ciao, come stai? tutto bene te?
tutto bene grazie

A questo punto con grep voglio cercare la stringa come stai.

Possiamo fare così:

$ grep -Ril "come stai" $HOME
/home/matte/test.txt

Le opzioni sono rispettivamente:

  • R -> cerca in maniera ricorsiva; ovviamente c'è da aspettare un pò, a seconda di quanti file o directory ci sono
  • i -> ignore case, quindi cerca a prescindere da maiuscolo o minuscolo
  • l -> cambia l'output a schermo (fate delle prove per verificare)

Al posto di $HOME potete mettere il path che vi serve (come ad esmpio /var/log).

Enjoy!