grep

Comando Linux egrep com exemplos

Comando Linux egrep com exemplos
O comando egrep pertence à família do comando grep que é usado para pesquisa de padrões no Linux. Se você usou o comando grep, egrep funciona da mesma forma que grep -E (grep Extended regex '). Egrep examina um arquivo específico, linha a linha, e imprime as linhas que contêm a string de pesquisa / expressão regular. Neste artigo, explicaremos 15 exemplos úteis dos comandos egrep que ajudarão iniciantes e até mesmo especialistas a realizar pesquisas significativas no Linux. Fizemos esses exemplos em um sistema Debian 10 Buster, mas eles podem ser facilmente replicados na maioria das distros Linux.

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

Este é o uso mais comum do comando egrep. O que você faz é especificar uma string que deseja pesquisar e o nome do arquivo no qual deseja procurar essa string. O resultado então exibe toda a linha contendo a string pesquisada.

Sintaxe:

$ egrep “search_string” nome do arquivo

Exemplo:

$ egrep debian samplefile.TXT

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

Exemplo 2: Pesquisa de uma string específica em vários arquivos

Com o comando egrep, você pode pesquisar por uma string entre vários arquivos que residem no mesmo diretório. Você só precisa ser um pouco mais específico ao fornecer um "padrão" para os arquivos pesquisados. Isso ficará mais claro com o exemplo que apresentaremos.

Sintaxe:

$ egrep "search_string" filename_pattern

Exemplo:

Aqui, vamos pesquisar a palavra "debian" em todos os .arquivos txt especificando o padrão de nome de arquivo da seguinte maneira:

$ egrep “debian” *.TXT

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

Exemplo 3: Pesquisa recursiva da string em todo o diretório

Quando você deseja pesquisar por uma string em todos os arquivos de um diretório e seus subdiretórios, você pode fazer isso usando a opção -r com o comando egrep.

Sintaxe:

$ egrep -r "search_string" *

Exemplo:

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

$ egrep -r "amostra" *

Os resultados contêm todas as linhas, junto com os nomes dos arquivos, que contêm a palavra "amostra" de todos os arquivos no diretório Downloads e seus subdiretórios.

Exemplo 4: realização de uma pesquisa que não diferencia maiúsculas de minúsculas

Com o sinalizador -i, você pode usar o comando egrep para imprimir os resultados com base em uma string de pesquisa sem ter que se preocupar com a caixa.

Sintaxe:

$ egrep -i "search_string" nome do arquivo

Exemplo:

Aqui, estou pesquisando a palavra “debian” e quero que os resultados exibam todas as linhas do arquivo que contêm a palavra “debian” ou “Debian, independentemente do caso.

$ egrep -i "search_string" nome do arquivo

Você pode ver como o sinalizador -i me ajudou a buscar todas as linhas que contêm a string de pesquisa por meio de uma pesquisa "insensível" a maiúsculas.

Exemplo 5: Pesquisa de uma string como uma palavra completa e não como uma substring

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

Sintaxe:

$ egrep -w nome do arquivo “search_string”

Exemplo:

Aqui estou procurando a string "on" em um arquivo de amostra:

$ egrep -i “on” samplefile.TXT

Você pode ver na saída acima, que também contém a palavra “apenas”. No entanto, não é isso que eu quero, pois procuro exclusivamente a palavra "on". Portanto, este é o comando que usarei no lugar:

$ egrep -iw “on” samplefile.TXT

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

Exemplo 6: Imprimir apenas os nomes de arquivo que contêm a string

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

Sintaxe:

$ egrep -l "search_string" filename_pattern

Exemplo:

Aqui estou procurando a string "amostra" em todos os .arquivos txt no diretório atual:

$ egrep -l sample *.TXT

Os resultados da pesquisa só imprimem o nome dos arquivos que contêm a string especificada.

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

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

Sintaxe:

$ egrep -o "search_string" nome do arquivo

Exemplo:

Neste exemplo, estou procurando a palavra “This” em meu arquivo.

$ egrep -o Este samplefile_.TXT

Nota: Este uso do comando é útil quando você está procurando por uma string com base em um padrão de expressão regular. Explicaremos 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 pesquisa

Às vezes é muito importante saber o contexto em um arquivo onde uma string específica é usada. O egrep é útil no sentido de que pode ser usado para mostrar a linha que contém a string de pesquisa e também um número específico de linhas antes, depois e em torno dela.

Este é o arquivo de texto de amostra que usarei para explicar os próximos exemplos:

Número N de linhas após a string de pesquisa:

Usar o sinalizador A da seguinte maneira exibirá a linha que contém a string de pesquisa e um número N de linhas após ela:

$ egrep -A nome do arquivo "search_string"

Exemplo:

$ egrep -A 2 "amostra” arquivo de amostra.TXT

Número N de linhas antes da string de pesquisa:

Usar o sinalizador B da seguinte maneira exibirá a linha que contém a string de pesquisa e o número N de linhas antes dela:

$ egrep -B nome do arquivo "search_string"

Exemplo:

$ egrep -B 2 "amostra” arquivo de amostra.TXT

Número N de linhas antes da string de pesquisa:

Usar o sinalizador C da seguinte maneira exibirá a linha que contém a string de pesquisa e o número N de linhas antes e depois dela:

$ egrep -C nome do arquivo "search_string"

Exemplo:

arquivo de amostra de amostra de $ egrep -C 2 ".TXT

Exemplo 9: Correspondência de expressão regular em arquivos

O comando egrep torna-se mais poderoso conforme você procura por expressões regulares em vez de sequências de pesquisa sólidas em um arquivo.

Sintaxe:

$ egrep "RegularExpressions" nome do arquivo

Deixe-nos explicar como você pode usar expressões regulares em sua pesquisa egrep:

Operador de repetição Usar
? O item anterior antes ? é opcional e é correspondido no máximo uma vez

* O item anterior antes de * será correspondido zero ou mais vezes
+ O item anterior antes de + será correspondido uma ou mais vezes
n O item anterior corresponde exatamente n número de vezes.
n, O item anterior é correspondido n ou mais vezes
, m O item anterior é correspondido no máximo m vezes
n, m O item anterior é correspondido pelo menos n vezes, mas não mais do que m vezes

Exemplo:

No exemplo a seguir, as linhas que contêm a seguinte expressão são correspondidas:

começando com “Gnome” e terminando em “programas”

Exemplo 10: Destacando a string de pesquisa

Ao definir a variável de ambiente GREP_OPTIONS conforme abaixo, você obtém sua saída com a string / padrão de pesquisa destacado 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: Execução de pesquisa invertida em um arquivo

Por inverter pesquisa, queremos dizer que o comando egrep imprime tudo no arquivo, exceto as linhas que contêm a string de pesquisa. Usaremos o seguinte arquivo de exemplo para explicar a pesquisa invertida por meio do egrep. Imprimimos o conteúdo do arquivo usando o comando cat:

Sintaxe:

$ egrep -v "search_string" nome do arquivo

Exemplo:

Do arquivo de amostra que mencionamos, queremos omitir a linha que contém a palavra "dois" 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 para a segunda linha que continha a string de pesquisa “dois”.

Exemplo 12: Execução de pesquisa invertida com base em vários critérios / padrão de pesquisa

Com o sinalizador -v, você também pode fazer com que o comando egrep execute uma pesquisa invertida com base em mais de uma string / padrão de pesquisa.

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

Sintaxe:

$ egrep -v -e "string_de_pesquisa" / ”padrão” -e "string_de_pesquisa" / ”padrão”
… nome do arquivo

Exemplo:

Do arquivo de amostra que mencionamos, queremos omitir as linhas que contêm as palavras "um" e "dois" na saída, portanto, usaremos o seguinte comando:

$ egrep -v -e “um” -e "dois" samplefile_.TXT

Fornecemos duas palavras para omitir usando o sinalizador -e, portanto, a saída aparecerá da seguinte maneira:

Exemplo 13: Imprimir o número de linhas que correspondem à string de pesquisa

Em vez de imprimir o texto pesquisado do arquivo ou as linhas que o contêm, você pode usar o comando egrep para contar e imprimir o número de linhas correspondentes ao texto. Esta contagem pode ser obtida usando a opção -c com o comando egrep.

Sintaxe:

$ egrep -c "search_string" nome do arquivo

Exemplo:

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

$ egrep -c "Este" nome de arquivo

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

$ grep -v -c "search_string” nome do arquivo

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

Com o sinalizador -n, você pode fazer com que o comando egrep imprima a linha correspondida junto com o número da linha que contém a string de pesquisa.

Sintaxe:

$ grep -n "search_string" nome do arquivo

Exemplo:

$ grep -n "Este” samplefile_.TXT

Você pode ver como os números das linhas são exibidos nos resultados da pesquisa.

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

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

$ grep -o -b "search_string” nome do arquivo

Exemplo:

$ grep -o -b "Este” samplefile_.TXT

Os resultados da pesquisa imprimem o deslocamento de bytes do arquivo onde a palavra de pesquisa existe.Este foi um uso detalhado do comando egrep. Usando uma combinação das sinalizações explicadas neste artigo, você pode realizar pesquisas mais significativas e complexas em seus arquivos.

O botão do meio do mouse não funciona no Windows 10
O botão do meio do mouse ajuda você a percorrer longas páginas da web e telas com muitos dados. Se isso parar, você vai acabar usando o teclado para r...
Como alterar os botões esquerdo e direito do mouse no PC com Windows 10
É normal que todos os dispositivos de mouse de computador sejam ergonomicamente projetados para usuários destros. Mas existem dispositivos de mouse di...
Emular cliques do mouse passando o mouse usando o mouse sem cliques no Windows 10
Usar um mouse ou teclado na postura errada de uso excessivo pode resultar em muitos problemas de saúde, incluindo tensão, síndrome do túnel do carpo e...