Tutorial Linux - comando grep

O comando grep é utilizado para pesquisar strings em arquivos texto. Um dos usos mais comuns do grep é para filtrar a saída de outros comandos, para isso, é usado o pipe " | " para direcionar a saída do primeiro comando para o grep.



Mostrar todos os arquivos de vídeo com a extensão .avi

No exemplo abaixo usamos o comando "ls" para listar o conteúdo de um diretório, e direcionamos a saída do comando "ls" usando o pipe " | " para o grep e especificamos que mostre apenas os arquivos ".avi".

ls | grep *.avi

Pesquisar strings dentro de arquivos texto

No exemplo abaixo pesquisamos o nome do filme "Hulk" dentro do arquivos lista_de_filmes.txt . Usamos o parâmetro "-i" para ignorar maiúsculas ou minúsculas, isto é, todas as ocorrências da palavra "hulk" serão mostradas.

grep -i hulk lista_de_filmes.txt

Outra maneira de obter o mesmo resultado é usar o comando cat junto com o grep.

cat lista_de_filmes.txt | grep -i hulk

Excluir um resultado e mostrar todos os outros

Caso queira listar todos os filmes do arquivo lista_de_filmes.txt menos o filme "Hulk", uso o parâmetro "-v".

grep -v Hulk lista_de_filmes.txt

Contar o número de linhas que contem uma string específica:

Para mostrar a quantidade de linhas que contém uma string, use o parâmetro "-c". No caso abaixo será mostrado a quantidade de filmes do 007 James Bond dentro do arquivo lista_de_filmes.txt.

grep -c 007 lista_de_filmes.txt

Mostrar o número e as linhas onde aparece uma string

No exemplo abaixo o número das linhas que contém "007" e o conteúdo de cada linha será exibido.

grep -n 007 lista_de_filmes.txt

Pesquisar uma expressão

Para pesquisar uma string separada por espaço, use aspas no início e no fim da expressão a ser pesquisada.

grep "007 contra spectre" lista_de_filmes.txt

Mostrar todas as linhas que começam com um caractere especifico

Para exibir todas as linhas que começam com a letra H, digite use o sinal de acento circunflexo seguido da expressão a ser pesquisada.

grep ^H lista_de_filmes.txt

Mostrar todas as linhas que terminam com uma determinada palavra

Para exibir todas as linhas que terminam com a palavra "spectre" , basta digitar a palavra seguida do sinal de cifrão "$".

grep spectre$ lista_de_filmes.txt

Mostrar as linhas que tenham números

Para exibir todas as linhas que tenham pelo menos um número, use a expressão [0-9]. Caso queira um intervalo diferente é só modificar o inicio ou o final do intervalo, por exemplo [0-5] ou [1-7], etc .

grep [0-9] lista_de_filmes.txt

Mostrar as linhas que tenham letras especificas

Para exibir todas as linhas que tenham um intervalo de letras como de "a" ate "m", use o mesmo padrão anterior, colocando o intervalo das letras entre colchetes.

grep [a-m] lista_de_filmes.txt

Pesquisar linhas usando um caractere curinga

Quando existir um caractere que possa ter mais de uma valor e você gostaria de exibir os dois valores, use o " . " (ponto) no lugar do caractere desconhecido. O exemplo abaixo, as palavras "Capitão" e "Capitao" serão exibidas.

grep "Capit.o América" lista_de_filmes.txt