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 -aNome 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 -bNome 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 -CNome 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.