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 arquivoExemplo:
$ egrep debian samplefile.TXTNeste 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_patternExemplo:
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 arquivoExemplo:
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_patternExemplo:
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 arquivoExemplo:
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 -AExemplo:
$ 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 -BExemplo:
$ 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 -CExemplo:
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 arquivoDeixe-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 arquivoExemplo:
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_.TXTFornecemos 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 arquivoExemplo:
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 arquivoExemplo:
$ 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 arquivoExemplo:
$ 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.