grep <opções> <texto> <arquivo(s)>
Exemplos:
grep mamae recoreco.txt bolao.docx azeitona.pdf
Procura pela palavra "mamae" dentro dos arquivos passados. Observe que até segunda ordem, arquivo é arquivo, e o grep c*ga e anda se eles são txt, doc, docx, zip ou mesmo executável. Se tiver a sequência de letras que você estiver procurando, ele encontra.
grep "mamae e papai" familia.txt
Procura pela frase exata "mamae e papai" dentro do arquivo familia.txt. Observe que quando o texto procurado tem espaços, você precisa colocá-lo entre aspas simples (') ou duplas(").
Observe também que ele só vai encontrar se o texto estiver todo em minúsculas, e se os espaços aparecerem exatamente como você passou.
grep -i "mamae e papai" familia.txt
Mesma coisa, porém agora ele vai ignorar maiúsculas e minúsculas.
grep "mamae e papai" *.txt familia.*
Procura por "mamae e papai" em todos os arquivos terminados em ".txt", e em todos começados por "familia.".
grep -r "mamae e papai" *
O mesmo, mas agora procura em todos os arquivos desta pasta, e em todas as pastas abaixo.
grep -v "papai" *.txt
Mostra todas as linhas que não têm a palavra "papai" nos arquivos ".txt".
grep -l -v "papai" *.txt
O mesmo, mas agora mostra só os arquivos que não têm essa palavra, e não as linhas.
Há ainda dois outros programas associados, chamados fgrep ("fast grep") e egrep (regular expression grep). O primeiro encontra textos básicos de forma rápida. O segundo usa expressões regulares, e por isso é extremamente poderoso. Até onde eu sei, o grep tenta ver se você está usando ou não expressões regulares, e se for o caso direciona pra um ou pra outro.