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, o egrep funciona da mesma forma que Grep -e (Grep Extended Regex '). EGREP digitaliza um arquivo específico, linha a linha e imprime a (s) linha (s) que contêm a sequência de pesquisa/expressão regular. Neste artigo, explicaremos 15 exemplos úteis dos comandos do EGREP que ajudarão os novatos e até especialistas a realizar pesquisas significativas no Linuxwe, executaram esses exemplos em um sistema de 10 buster debian, mas eles podem ser facilmente replicados na maioria dos distritos do Linux.

Exemplo 1: Pesquisando 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 que deseja procurar essa string. O resultado exibe então toda a linha que contém a string pesquisada.

Sintaxe:

$ eGREP “Search_string” nome do arquivo

Exemplo:

$ eGREP Debian Samplefile.TXT

Neste exemplo, procurei 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: Pesquisando por uma string específica em vários arquivos

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

Sintaxe:

$ EGREP "PEARCH_STRING" FILENAME_PATTERN

Exemplo:

Aqui, procuraremos a palavra "Debian" em todos os .Arquivos TXT especificando o padrão de nome do arquivo da seguinte forma:

$ 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: pesquisando recursivamente a string em todo o diretório

Quando você deseja procurar uma string em todos os arquivos de um diretório e de seus subdiretos, você pode fazê -lo usando o sinalizador -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, juntamente com os nomes de arquivos, que contêm a palavra "amostra" de todos os arquivos no diretório de downloads, e seus sub -diretórios.

Exemplo 4: Execução de uma pesquisa insensível ao caso

Com a bandeira -i, você pode usar o comando EGREP para imprimir os resultados com base em uma sequência de pesquisa sem ter que se preocupar com o caso.

Sintaxe:

$ eGREP -I "Search_string" nome do arquivo

Exemplo:

Aqui, estou procurando a palavra "Debian" e quero que os resultados exibam todas as linhas do arquivo que contêm a palavra "Debian" ou "Debian, independentemente do seu caso.

$ eGREP -I "Search_string" nome do arquivo

Você pode ver como a bandeira -i me ajudou a buscar todas as linhas que contêm a sequência de pesquisa por meio de uma pesquisa "insensível".

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

Quando você normalmente procura uma string através do egrep, ele imprime todas as palavras que contêm a string como uma sub-string. Por exemplo, procurar a string "ON" imprimirá todas as palavras que contêm a string "ON" como "On", "Somente", "Monitor", "Clone", etc. Se você deseja que os resultados exibam apenas a palavra "on" como uma palavra completa e não como uma sub -string, você pode usar a bandeira -w com egrep.

Sintaxe:

$ eGREP -W “Search_string” nome do arquivo

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 ele contém a palavra "somente" também. No entanto, não é isso que eu quero, pois estou procurando exclusivamente a palavra "on". Então, este é o comando que usarei:

$ 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 arquivos que contêm a string

Às vezes, queremos apenas buscar os nomes de 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 (minúsculo L) 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 Amostra *.TXT

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

Exemplo 7: Imprimir apenas a sequência de pesquisa de um arquivo

Em vez de imprimir toda a linha que contém a sequência de pesquisa, você pode usar o comando EGREP para imprimir a própria string. 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 "isto" no meu arquivo.

$ egrep -o este amostrafile_.TXT

Nota: Este uso do comando é útil quando você está procurando uma string com base em um padrão de expressão regular. Explicaremos 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 em que uma string específica é usada. O eGrep é útil no sentido de que pode ser usado para exibir a linha que contém a sequência de pesquisa e também um número específico de linhas antes, depois e circundando.

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

N Número de linhas após a sequência de pesquisa:

Usando o sinalizador A da seguinte maneira exibirá a linha que contém a sequência de pesquisa e N número de linhas depois dela:

$ egrep -a Nome do arquivo "Search_string"

Exemplo:

$ eGREP -A 2 "Sample" Samplefile.TXT

N Número de linhas antes da sequência de pesquisa:

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

$ egrep -b Nome do arquivo "Search_string"

Exemplo:

$ eGREP -B 2 "Sample" Samplefile.TXT

N Número de linhas antes da sequência de pesquisa:

O uso da bandeira C da seguinte maneira exibirá a linha que contém a sequência de pesquisa e N número de linhas antes e depois:

$ eGREP -C Nome do arquivo "Search_string"

Exemplo:

$ eGREP -C 2 "Sample" Samplefile.TXT

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

O comando EGREP se torna mais poderoso enquanto você procura expressões regulares em vez de seqüências sólidas de pesquisa em um arquivo.

Sintaxe:

$ egrep "regularexpressions" nome do arquivo

Vamos explicar como você pode usar expressões regulares em sua pesquisa de egrep:

Operador de repetição Usar
? O item anterior antes ? é opcional e é correspondido no máximo único
* O item anterior antes * será comparado a zero ou mais vezes
+ O item anterior antes de + será correspondido uma ou mais vezes
n O item anterior é exatamente correspondente a 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 que M vezes

Exemplo:

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

Começando com "Gnome" e terminando em "Programas"

Exemplo 10: Destacando a sequência de pesquisa

Quando você define a variável do ambiente Grep_Options como abaixo, você obtém sua saída com a sequência de pesquisa/padrão destacada nos resultados:

$ sudo exportar grep_options = '-color = auto' grep_color = '100; 8'

Você pode procurar a string de qualquer maneira que descrevemos nos exemplos deste artigo.

Exemplo 11: Executando a pesquisa invertida 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. Usaremos o seguinte arquivo de amostra para explicar a pesquisa invertida através do egrep. Imprimimos o conteúdo do arquivo usando o comando CAT:

Sintaxe:

$ eGREP -V "Search_string" nome do arquivo

Exemplo:

A partir 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 "dois" amostrafile_.TXT

Você pode ver como a saída contém tudo, desde o arquivo de amostra, exceto a segunda linha que continha a sequência de pesquisa "dois".

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

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

Usaremos 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"
… nome do arquivo

Exemplo:

A partir do arquivo de amostra que mencionamos, queremos omitir as linhas que contêm as palavras "uma" e "duas" na saída, portanto, usaremos o seguinte comando:

$ eGREP -V -E "ONE" -E "dois" SampleFile_.TXT

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

Exemplo 13: Imprimir o número de linhas que correspondem à sequência de pesquisa

Em vez de imprimir a string pesquisada do arquivo ou as linhas que a contêm, você pode usar o comando EGREP para contar e imprimir o número de linhas correspondentes à string. Esta contagem pode ser buscada usando o sinalizador -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 "isto" em nosso arquivo de amostra:

$ egrep -c "this" nome do arquivo

Você também pode usar o recurso de pesquisa invertido 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 em que a string é correspondente

Com o sinalizador -n, você pode fazer o comando EGREP para imprimir a linha correspondente 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 "this" samplefile_.TXT

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

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

Se você quiser saber a posição no arquivo em que a string de pesquisa existe, você pode usar o sinalizador -b com o comando EGREP.

$ grep -o -b "Search_string" nome do arquivo

Exemplo:

$ grep -o -b "this" samplefile_.TXT

Os resultados da pesquisa imprimem o deslocamento de byte do arquivo em que a palavra de pesquisa existe.Este foi um uso detalhado do comando EGREP. Ao usar uma combinação das bandeiras explicadas neste artigo, você pode executar pesquisas mais significativas e complexas em seus arquivos.