20 exemplos de comando linux egrep

20 exemplos de comando linux egrep

Resumo: Neste guia, discutiremos alguns dos exemplos práticos do comando EGREP. Depois de seguir este guia, os usuários poderão executar o texto pesquisando com mais eficiência no Linux.

Você já ficou frustrado porque não consegue encontrar as informações necessárias nos logs? Extrair as informações necessárias de um grande conjunto de dados é uma tarefa complexa e demorada.

As coisas se tornam realmente desafiadoras se o sistema operacional não fornecer as ferramentas certas e aqui vem o Linux para resgatá -lo. O Linux fornece vários utilitários de filtragem de texto, como awk, sed, corte, etc.

No entanto, o EGREP é um dos utilitários mais poderosos e comumente usados ​​para o processamento de texto no Linux, e vamos discutir alguns exemplos do egrep comando.

O egrep O comando no Linux é reconhecido pela família do comando Grep, que é usado para pesquisar e combinar um padrão específico em arquivos. Funciona de maneira semelhante a grep -e (Grep estendeu a regex), mas pesquisa principalmente um arquivo específico ou até linhas para alinhar ou imprimir a linha no arquivo especificado.

A sintaxe do egrep O comando é o seguinte:

$ EGREP [Opções] Padrões [arquivos] 

Vamos criar um arquivo de texto de amostra com o seguinte conteúdo para usar um exemplo:

$ gat amostra.TXT 
Arquivo de texto de amostra

Aqui, podemos ver que o arquivo de texto está pronto. Agora vamos discutir alguns exemplos comuns que podem ser usados ​​diariamente.

1. Como encontrar um padrão em um único arquivo

Vamos começar com um exemplo simples de correspondência de padrões, onde podemos usar o comando abaixo para pesquisar uma string profissional em um amostra.TXT arquivo:

Amostra de $ eGREP Professionals.TXT 
Pesquise por string no arquivo

Aqui, podemos ver que o comando imprime a linha que contém o padrão especificado.

2. Como destacar padrões correspondentes no arquivo

Podemos tornar a saída mais informativa, destacando o padrão correspondente. Para conseguir isso, podemos usar o --cor opção do egrep comando. Por exemplo, o comando abaixo destacará o texto profissionais na cor vermelha:

$ eGREP -CORA = Amostra de profissionais de automóveis.TXT 
Destaque o texto no arquivo

Aqui, podemos ver que a mesma saída é mais informativa em comparação com a anterior. Além disso, podemos identificar facilmente que a palavra profissionais é repetido duas vezes.

Na maioria dos sistemas Linux, a configuração acima é ativada por padrão usando o seguinte alias:

$ alias egrep = "EGREP -COLOR = AUTO" 

3. Como encontrar um padrão em vários arquivos

O egrep O comando aceita vários arquivos como um argumento, o que nos permite pesquisar um padrão específico em vários arquivos. Vamos entender isso com um exemplo.

Primeiro, crie uma cópia do amostra.TXT arquivo:

$ cp amostra.txt amostra-cópia.TXT 

Agora, procure o padrão profissionais Nos dois arquivos:

Amostra de $ eGREP Professionals.txt amostra-cópia.TXT 
Pesquise por string em vários arquivos

No exemplo acima, podemos ver o nome do arquivo na saída, que representa a linha correspondente desse arquivo.

4. Como contar linhas correspondentes no arquivo

Às vezes, só precisamos descobrir se o padrão está presente ou não no arquivo. Se sim, então em quantas linhas está presente? Nesses casos, podemos usar o -c opção do comando.

Por exemplo, o comando abaixo será exibido 1 como uma saída porque a palavra profissionais está presente em apenas uma linha.

Amostra de $ eGREP -C Professionals.TXT 1 

5. Como imprimir apenas linhas correspondentes no arquivo

No exemplo anterior, vimos que o -c a opção não conta o número de ocorrências do padrão. Por exemplo, a palavra profissionais aparece duas vezes na mesma linha, mas o -c a opção trata isso como uma única partida apenas.

Nesses casos, podemos usar o -o opção do comando para imprimir apenas o padrão correspondente. Por exemplo, o comando abaixo mostrará a palavra profissionais Em duas linhas separadas:

Amostra de $ eGREP -O Professionals.TXT 

Agora, vamos contar as linhas usando o comando WC:

Amostra de $ eGREP -O Professionals.txt | wc -l 
Imprimir linhas correspondentes no arquivo

No exemplo acima, usamos a combinação de egrep e Banheiro comandos para contar o número de ocorrências do padrão particular.

6. Como encontrar um padrão ignorando o caso

Por padrão, egrep executa a correspondência de padrões de maneira sensível ao caso. Significa palavras - nós, nós, nós e somos tratados como palavras diferentes. No entanto, podemos fazer cumprir a pesquisa insensível ao caso usando o -eu opção.

Por exemplo, no padrão de comando abaixo, a correspondência será bem -sucedida para o texto nós e Nós:

$ eGREP -I Amostramos.TXT 
String insensível ao caso de pesquisa

7. Como excluir padrões parcialmente correspondentes

No exemplo anterior, vimos que o egrep O comando executa uma partida parcial. Por exemplo, quando procuramos o texto nós Então a correspondência de padrões também teve sucesso para outros textos. Como web, site e foram.

Para superar essa limitação, podemos o -c opção, que aplica toda a palavra correspondente.

$ eGREP -W Amostramos.TXT 
Imprimir apenas padrões correspondentes no arquivo

8. Como inverter a correspondência de padrões no arquivo

Até agora, usamos o egrep comando para imprimir as linhas nas quais o padrão fornecido está presente. No entanto, às vezes queremos executar a operação de uma maneira oposta.

Por exemplo, podemos querer imprimir as linhas em que o padrão fornecido não está presente. Podemos conseguir isso com a ajuda do -v opção:

$ eGREP -V Amostramos.TXT 
Inverter padrões de correspondência no arquivo

Aqui, podemos ver que o comando imprime toda a linha que não contém o texto nós.

9. Como encontrar o número da linha do padrão

Podemos usar o -n Opção do comando para ativar a numeração da linha, que mostra o número da linha na saída quando a correspondência de padrões é bem -sucedida. Este truque simples torna a saída mais significativa.

Amostra de $ eGREP -N Professionals.TXT 
Número da linha de impressão de padrão correspondente

Na saída acima, podemos ver que a palavra profissionais está presente no 5 ª linha.

10. Como executar a correspondência de padrões no modo silencioso

No modo silencioso, o egrep O comando não imprime o padrão correspondente. Portanto, temos que usar o valor de retorno do comando para identificar se a correspondência de padrões foi ou não bem -sucedida.

Podemos usar o -q Opção do comando para ativar o modo silencioso, que é útil ao escrever scripts de shell.

Amostra de $ eGREP -Q Professionals.TXT $ eGREP -Q inexistente amostra de padrões.TXT 
Matriz de padrões de pesquisa no modo silencioso

Neste exemplo, o zero O valor de retorno indica a presença do padrão, enquanto o valor diferente de zero indica a ausência do padrão.

11. Como exibir linhas antes do padrão corresponder

Às vezes, faz sentido mostrar algumas linhas ao redor do padrão correspondente. Para esses cenários, podemos usar o -B opção do comando, que exibe N linhas antes do padrão correspondente.

Por exemplo, o comando abaixo imprimirá a linha para a qual o padrão corresponde, bem como 2 linhas antes dele.

Amostra de $ eGREP -B 2 -N Professionals.TXT 
Linhas de impressão antes da correspondência do padrão

Neste exemplo, usamos o -n opção para exibir números de linha.

12. Como exibir linhas após a correspondência do padrão

De maneira semelhante, podemos usar o -A opção do comando para exibir linhas após a correspondência do padrão. Por exemplo, o comando abaixo imprimirá a linha para a qual a correspondência do padrão terá sucesso, bem como as próximas 2 linhas.

$ egrep -a 2 -n Profissionais Amostra.TXT 
Linhas de impressão após correspondência de padrão

13. Como exibir linhas ao redor da correspondência do padrão

Além disso, o egrep O comando suporta o -C opção que combina a funcionalidade das opções -A e -B, que exibe as linhas antes e depois do padrão correspondente.

Amostra de $ eGREP -C 2 -N Professionals.TXT 
As linhas de impressão em torno do padrão correspondente

14. Como encontrar um padrão em vários arquivos recursivamente

Conforme discutido anteriormente, podemos executar a correspondência de padrões em vários arquivos. No entanto, a situação se torna complicada quando os arquivos estão presentes em vários subdiretos e passamos todos eles como argumentos de comando.

Nesses casos, podemos executar a correspondência de padrões de maneira recursiva usando o -r opção como mostrado no exemplo a seguir.

Primeiro, crie 2 subdiretos e copie o amostra.TXT Arquive neles:

$ mkdir -p dir1/dir2 $ cp amostra.amostra txt dir1/ $ cp.txt dir1/dir2/ 

Agora, vamos realizar a operação de pesquisa de uma maneira recursiva:

$ eGREP -R Profissionais Dir1 
Pesquise a string recursivamente em arquivos

No exemplo acima, podemos ver que a correspondência do padrão foi bem -sucedida para o dir1/dir2/amostra.TXT e dir1/amostra.TXT arquivos.

15. Como combinar um único personagem usando expressões regulares

Podemos usar um ponto (.) personagem para combinar com qualquer caractere, exceto o final da linha. Por exemplo, a expressão regular abaixo corresponde ao texto har, chapéu e tem:

$ egrep "ha." amostra.TXT 
Combine o caractere único no arquivo

16. Como combinar zero ou mais ocorrências de caráter

Podemos usar o asterisco (*) Para combinar zero ou mais ocorrências do personagem anterior. Por exemplo, a expressão regular abaixo corresponde ao texto que contém uma string nós seguido por zero ou mais ocorrências do personagem b.

$ eGREP "Web*" amostra.TXT 
Combine a string no arquivo de texto

17. Como combinar uma ou mais ocorrências do personagem anterior

Podemos usar o plus (+) Para combinar uma ou mais ocorrências do personagem anterior. Por exemplo, a expressão regular abaixo corresponde ao texto que contém a string nós seguido por pelo menos uma ocorrência do personagem b.

$ egrep "web+" amostra.TXT 
Combinar string por caractere no arquivo

Aqui, podemos ver que a correspondência de padrões não é bem -sucedida pelas palavras - nós e eram, devido a ausência do personagem b.

18. Como combinar o início da linha

Podemos usar o caret (^) Para representar o início da linha. Por exemplo, a expressão regular abaixo imprime as linhas que começam com o texto Nós:

$ egrep "^amostra".TXT 
Imprimir texto correspondente com linha de partida

19. Como combinar o fim da linha

Podemos usar o dólar ($) Para representar o fim da linha. Por exemplo, a expressão regular abaixo imprime as linhas que terminam com o texto e.:

$ egrep "e.$ "amostra.TXT 
Texto correspondente de impressão com linha final

20. Como remover linhas vazias no arquivo

Podemos usar o caret (^) imediatamente seguido pelo dólar ($) Para representar a linha vazia. Vamos usar isso em uma expressão regular para remover linhas vazias:

$ eGREP -N -V "^$" Amostra.TXT 
Remova linhas vazias no arquivo

Na saída acima, podemos ver que os números de linha 2, 4, 6, 8 e 10 não são exibidos, pois estão vazios.

Conclusão

Neste artigo, discutimos alguns exemplos úteis do egrep comandos. Pode-se usar esses exemplos na vida cotidiana para melhorar a produtividade.

Você conhece qualquer outro melhor exemplo do comando EGREP no Linux? Deixe -nos saber suas opiniões nos comentários abaixo.