O comando egrep pertence à família do comando grep que é usado para busca de padrões no Linux. Se você usou o comando grep, o egrep funciona da mesma forma que o grep -E (grep Extended regex’). O egrep escaneia um arquivo específico, linha a linha, e imprime a(s) linha(s) que contém(m) a string de busca/expressão regular. Neste artigo, vamos explicar 15 exemplos úteis dos comandos egrep que ajudarão os novatos e até mesmo especialistas a realizar buscas significativas no LinuxExecutamos estes exemplos em um sistema Debian 10 Buster mas eles podem ser facilmente replicados na maioria das distros Linux.

Exemplo 1: Buscando por uma string específica em um arquivo

Este é o uso mais comum do comando egrep. O que você faz é especificar uma string que você quer procurar, e o nome do arquivo em que você quer procurar por essa string. O resultado então exibe a linha inteira contendo a string pesquisada.

Syntax:

$ egrep “search_string” filename

Exemplo:

$ egrep debian samplefile.txt

Neste exemplo, eu procurei pela palavra “debian” no arquivo de texto especificado. Você pode ver como os resultados mostram a linha inteira que contém a palavra “debian”:

Exemplo 2: Procurando por uma string específica em múltiplos arquivos

Com o comando egrep, você pode procurar por uma string entre múltiplos arquivos residentes no mesmo diretório. Você só tem que ser um pouco mais específico ao fornecer um “padrão” para os arquivos pesquisados. Isso ficará mais claro com o exemplo que vamos apresentar.

Sintax:

$ egrep “search_string” filename_pattern

Exemplo:

Aqui, vamos procurar pela palavra “debian” em todos os arquivos .txt especificando o padrão do nome do arquivo da seguinte forma:

$ egrep “debian” *.txt

O comando imprimiu todas as linhas, juntamente com os nomes dos arquivos que contêm a palavra “debian” de todos os arquivos .txt no diretório atual.

Exemplo 3: Procurando novamente a string em todo o diretório

Quando você quiser procurar por uma string em todos os arquivos de um diretório e suas subdiretórios, você pode fazê-lo usando a flag -r com o comando egrep.

Syntax:

$ egrep -r “search_string” *

Exemplo:

Neste exemplo, estou procurando pela palavra “sample” nos arquivos de todo o diretório atual(Downloads).

$ egrep -r “sample” *

Os resultados contêm todas as linhas, juntamente com os nomes dos arquivos, que contêm a palavra “sample” de todos os arquivos do diretório Downloads, e seus subdiretórios.

Exemplo 4: Realizando uma busca sem distinção entre maiúsculas e minúsculas

Com a bandeira -i, você pode usar o comando egrep para imprimir os resultados baseados em uma string de busca sem ter que se preocupar com o seu caso.

Sintax:

$ egrep -i “search_string” nome do arquivo

Exemplo:

Aqui, estou procurando pela palavra “debian” e quero que os resultados mostrem todas as linhas do arquivo que contém a palavra “debian” ou “Debian”, independente do caso.

$ egrep -i “search_string” filename

>

Você pode ver como a bandeira -i me ajudou a buscar todas as linhas que contêm a string de busca através de uma busca “insensível” a maiúsculas e minúsculas.

Exemplo 5: Procurando por uma string como uma palavra completa e não como uma sub-cordem

Quando você normalmente procura por uma string através do egrep, ele imprime todas as palavras que contêm a string como uma sub-cordem. Por exemplo, procurando a string “on” imprimirá todas as palavras que contêm a string “on” como ” on”, “only”, “monitor”, “clone”, etc. Se você quiser que os resultados mostrem apenas a palavra “on” como uma palavra completa e não como uma sub-cordem, você pode usar a bandeira -w com egrep.

Sintax:

$ egrep -w “search_string” filename

Exemplo:

Aqui estou procurando pela string “on” em um arquivo de amostra:

$ egrep -i “on” samplefile.txt

Você pode ver na saída acima, que ela contém a palavra “somente” também. Contudo, isto não é o que eu quero, pois estou procurando exclusivamente a palavra “on”. Então, este é o comando que vou usar em vez disso:

$ egrep -iw “on” samplefile.txt

Agora os meus resultados de pesquisa incluem apenas as linhas que contêm a palavra “on” como uma palavra inteira.

Exemplo 6: Imprimindo apenas os nomes dos arquivos que contêm a string

Por vezes só queremos ir buscar os nomes dos arquivos que contêm uma string específica, em vez de imprimir as linhas que a contêm. Isto pode ser feito usando o sinalizador -l (L minúsculo) com o comando egrep.

Syntax:

$ egrep -l “search_string” filename_pattern

Exemplo:

Aqui estou procurando pela string “sample” em todos os arquivos .txt no diretório atual:

$ egrep -l sample *.txt

Os resultados da pesquisa apenas imprimem o nome dos ficheiros que contêm a string especificada.

Exemplo 7: Imprimir apenas a string de pesquisa de um ficheiro

Em vez de imprimir toda a linha que contém a string de pesquisa, pode usar o comando egrep para imprimir a string em si. A string será impressa o número de vezes que aparece no ficheiro especificado.

Syntax:

$ egrep -o nome do ficheiro “search_string”

Exemplo:

Neste exemplo, estou a procurar a palavra “This” no meu ficheiro.

$ egrep -o Esta amostra de arquivo_.txt

Note: Este uso do comando vem a calhar quando se procura por uma string baseada num padrão de expressão regular. Vamos explicar as expressões regulares em detalhes em um dos próximos exemplos.

Exemplo 8: Exibindo n número de linhas antes, depois ou ao redor da string de busca

Por vezes é muito importante conhecer o contexto em um arquivo onde uma string específica é usada. O egrep é útil no sentido em que pode ser usado para exibir a linha contendo a string de busca e também um número específico de linhas antes, depois e ao redor dela.

Este é o ficheiro de texto de exemplo que vou utilizar para explicar os exemplos que se seguem:

N número de linhas Após a cadeia de caracteres de pesquisa:

Utilizando a bandeira A da seguinte maneira exibirá a linha contendo a string de busca e N número de linhas após ela:

$ egrep -A <N> “search_string” nome do arquivo

Exemplo:

$ egrep -A 2 “sample” de arquivo de amostra.txt

N número de linhas Antes da string de pesquisa:

Utilizando a bandeira B da seguinte maneira irá exibir a linha contendo a string de pesquisa e N número de linhas antes dela:

$ egrep -B <N> “search_string” filename

Exemplo:

$ egrep -B 2 “sample” samplefile.txt

N número de linhas Antes da cadeia de busca:

Usando a bandeira C da seguinte maneira, será exibida a linha contendo a cadeia de busca, e N número de linhas antes e depois dela:

$ egrep -C <N> “search_string” filename

Exemplo:

$ egrep -C 2 “sample” samplefile.txt

Exemplo 9: Combinando expressões regulares em arquivos

O comando egrep se torna mais poderoso à medida que você procura por expressões regulares ao invés de cadeias de caracteres sólidas de busca em um arquivo.

Sintaxe:

$ egrep “RegularExpressions” filename

Deixe-nos explicar como você pode usar Expressões Regulares em sua busca egrep:

Operador de repetição Uso
? O item anterior antes de ? é opcional e é igualado no máximo uma vez
* O item precedente antes de * será igualado zero ou mais vezes
+ O item anterior antes de + será igualado uma ou mais vezes
{n} O item anterior é exactamente igualado n número de vezes.
{n,} O item anterior é igualado n ou mais vezes
{,m} O item anterior é igualado no máximo m vezes
{n,m} O item anterior é igualado pelo menos n vezes mas não mais que m vezes

Exemplo:

No exemplo seguinte, as linhas contendo a seguinte expressão são combinadas:

>

Arrancar com “Gnome” e terminar em ” programas”

Exemplo 10: Realçando a string de pesquisa

Quando você define a variável de ambiente GREP_OPTIONS como abaixo, você obtém sua saída com a string/padrão de pesquisa realçada nos resultados:

$ sudo export GREP_OPTIONS=’–color=auto’ GREP_COLOR=’100;8′

Você pode então pesquisar a string de qualquer maneira que descrevemos nos exemplos deste artigo.

Exemplo 11: Executando a pesquisa Inverter em um arquivo

Por pesquisa invertida, queremos dizer que o comando egrep imprime tudo no arquivo, exceto as linhas que contêm a string de pesquisa. Vamos utilizar o seguinte ficheiro de amostra para explicar a pesquisa invertida através do egrep. Nós imprimimos o conteúdo do arquivo usando o comando cat:

Syntax:

$ egrep -v “search_string” filename

Exemplo:

Do arquivo de amostra que mencionamos, queremos omitir a linha contendo a palavra “two” na saída, portanto usaremos o seguinte comando:

$ egrep -v “two” samplefile_.txt

Você pode ver como a saída contém tudo do arquivo de amostra, exceto a segunda linha que continha a string de busca “two”.

Exemplo 12: Executando a busca invertida baseada em múltiplos critérios/padrão de busca

Com a flag -v, você também pode fazer o comando egrep para executar uma busca invertida baseada em mais de uma string/padrão de busca.

Estaremos usando o mesmo arquivo de amostra que mencionamos no exemplo 11 para explicar este cenário.

Sintaxe:

$ egrep -v -e “search_string”/”pattern” -e “search_string”/”pattern”
…. filename

Exemplo:

Do arquivo de amostra que mencionamos, queremos omitir a(s) linha(s) contendo as palavras “one” e “two” na saída, portanto vamos usar o seguinte comando:

$ egrep -v -e “one” -e “two” samplefile_.txt

Fornecemos duas palavras para omitir usando a bandeira -e, portanto a saída aparecerá da seguinte forma:

Exemplo 13: Imprimindo o número de linhas que combinam com a string de pesquisa

Em vez de imprimir a string pesquisada a partir do arquivo ou das linhas que a contêm, você pode usar o comando egrep para contar e imprimir o número de linhas que combinam com a string. Esta contagem pode ser obtida usando a bandeira -c com o comando egrep.

Syntax:

$ egrep -c “search_string” filename

Exemplo:

Neste exemplo, usaremos o flag -c para contar o número de linhas que contêm a palavra “This” no nosso arquivo de exemplo:

$ egrep -c “This” filename

Você também pode usar o recurso de busca invertida aqui para contar e imprimir o número de linhas que não contêm a string de busca:

$ grep -v -c “search_string” filename

Exemplo 14: Exibindo o número da linha onde a string é correspondida

Com a bandeira -n, você pode fazer o comando egrep para imprimir a linha correspondente juntamente com o número da linha que contém a string de pesquisa.

Sintaxe:

$ grep -n “search_string” filename

Exemplo:

$ grep -n “This” samplefile_.txt

Você pode ver como os números de linha são exibidos contra os resultados da busca.

Exemplo 15: Exibindo a posição no arquivo onde a string de busca corresponde

Se você quiser saber a posição no arquivo onde a string de busca existe, você pode usar a bandeira -b com o comando egrep.

$ grep -o -b “search_string” filename

Exemplo:

$ grep -o -b “This” samplefile_.txt

Os resultados da busca imprimem o byte offset do arquivo onde a palavra busca existe. Usando uma combinação das bandeiras explicadas neste artigo, você pode realizar buscas mais significativas e complexas em seus arquivos.

Deixe uma resposta

O seu endereço de email não será publicado.