Fique por dentro das novidades do seu tema preferido

Aprenda a criar sites incríveis com facilidade

Use o poder da internet para divulgar o seu negócio

Inspire-se com as estratégias de grandes empresas

Conteúdos variados para alavancar os resultados do seu projeto

A confirmação da sua inscrição foi enviada para o seu e-mail

Agradecemos sua inscrição e esperamos que você aproveite nossos conteúdos!

Evolua seus conhecimentos em Linux aprendendo um pouco mais sobre expressões regulares (RegEx) neste artigo!

As Expressões Regulares (RegEx) está presente em diversas linguagens de programação e mecanismos de buscas, com elas você pode definir expressões mais complexas na hora de criar filtros em scripts. Nesse artigo você aprenderá as principais regras de sintaxe da RegEx e suas aplicações em Linux e Shell Scripting. Vamos lá?

O que é RegEx?

RegEx se refere a Regular Expression, ou expressão regular, esta é uma ferramenta muito útil na hora de se realizar buscas por certos padrões de texto podendo ser utilizado em diversas linguagens de programação.

Com as expressões regulares você utiliza alguns caracteres especiais que representam uma variedade de opções pro seu filtro, permitindo realizar buscas complexas e mais abrangentes de forma simplificada e compacta.

Apesar de se poder utilizar da RegEx em diversas linguagens, nesse artigo você verá alguns exemplos de RegEx aplicado com comandos de Shell.

Como usar expressões regulares

Existem diversas regras caracteres especiais para a utilização das expressões regulares e para ficar mais claro o entendimento dessas regras utilizaremos um arquivo de exemplo que será mencionado no artigo como arquivo.txt e utilizaremos da RegEx para filtrar conteúdos nele. Este é o conteúdo do arquivo.txt:

O gato perseguiu o rato
O rato correu do gato
o rato fugiu pro mato
o Gato pegou o Rato

Filtrando por termos no início e fim da linha

Em RegEx, você pode consultar por termos que estejam no final ou início da linha utilizando os seguinte caracteres:

  • ^ = Representa o início da linha.
  • $ = Representa o final da linha.

A sintaxe pode ser utilizada da seguinte maneira:

egrep ^O arquivo.txt

  • egrep = o comando egrep funciona como o grep, porém, ele interpreta a sintaxe de expressões regulares também.
  • ^O = isso filtra no arquivo.txt todas as linhas que comecem com O maiúsculo.
  • arquivo.txt = arquivo de exemplo mencionado anteriormente.
Expressões regulares RegEx Linux ^

Outra forma de aplicação é com termos no final da linha utilizando o caractere dólar, veja o exemplo:

egrep rato$ arquivo.txt

  • rato$ = o egrep nesse caso vai localizar somente as linhas que possuam rato como último termo da linha. Pelo exemplo abaixo perceba que ele não corresponde com a linha que possui Rato como último termo, por conta da letra maiúscula.
Expressões regulares RegEx Linux $

Filtrando termos dentro de um array

Outra possibilidade de utilização da RegEx é definir um array (um intervalo) de caracteres utilizando colchetes. Veja o exemplo:

egrep [gmr]ato$ arquivo.txt

  • [gmr]ato$ = esse código vai procurar no arquivo.txt qualquer linha que possua como último termo gato, mato ou rato
Expressões regulares RegEx Linux array

Ao utilizar o caractere - dentro dos colchetes, é possível definir um intervalo inteiro do alfabeto. Veja o exemplo:

egrep [a-z]ato arquivo.txt

  • [a-z]ato = esse código vai procurar no arquivo.txt qualquer linha que possua o termo ato com um caractere que vai de a até z precedendo o termo ato. Note que nesse exemplo o código não corresponde com letra maiúsculas.
Expressões regulares RegEx Linux array -

Filtrando termos maiúsculos e minúsculos

Para que a busca localize termos independente se for maiúsculo ou minúsculo também é possível fazer utilizando os colchetes. Veja o exemplo:

egrep [rR]ato$ arquivo.txt

  • [rR]ato$ = esse código vai procurar no arquivo.txt qualquer linha que possua como último termo rato ou Rato.
Expressões regulares RegEx Linux case

Além disso, é possível combinar tudo que aprendemos até agora para definirmos um filtro de caracteres de maiúsculas e minusculas num array com o -. Veja o exemplo:

egrep [aA-zZ]ato arquivo.txt

  • [Aa-Zz]ato$ = [rR]ato$ = esse código vai procurar no arquivo.txt qualquer linha que possua o termo ato precedido por qualquer caractere de A a Z independente se for maiúsculo e minusculo.

Além disso, também é possível definir um array para filtrar dígitos numéricos. Por exemplo, [1-4] vai filtrar na linha resultados com o termo 1, 2, 3 ou 4.

Expressões regulares RegEx Linux case array

Filtrando utilizando caracteres curingas

Outra opção no RegEx é utilizar curingas para definir seu filtro, para isso é utilizado os caracteres:

  • .+ = representa um ou mais caracteres
  • .? = representa zero ou um caractere
  • .* = representa qualquer caractere

Veja um exemplo de utilização do .+ :

egrep O.+ arquivo.txt

  • O.+ = esse código vai procurar no arquivo.txt qualquer linha que possua o termo O seguido de um ou mais caracteres.
Expressões regulares RegEx Linux curinga .+

Veja um exemplo de utilização do .? :

egrep .?ato arquivo.txt

  • .?ato = esse código vai procurar no arquivo.txt qualquer linha que possua o termo ato com um ou nenhum caractere precedendo o termo.
Expressões regulares RegEx Linux curinga .?

Veja um exemplo de utilização do .* :

egrep eg.* arquivo.txt

  • eg.* = esse código vai procurar no arquivo.txt qualquer linha que possua o termo eg seguido de qualquer ou nenhum caractere.
curinga .*

Filtrando para diferentes termos

Também é possível filtrar em um termo utilizando o caractere | (pipe) que abrange um termo para mais possibilidades. Veja o exemplo:

egrep "(persegu|fug)iu" arquivo.txt

  • "(persegu|fug)iu" = esse código vai procurar no arquivo.txt qualquer linha que possua o termo perseguiu OU fugiu.
pipe

Considerações Finais

Estas foram algumas das principais e mais utilizadas regras de expressões regulares no Linux, você pode conferir mais opções e variações da RegEx no manual oficial.

Se você sentiu alguma dificuldade ou então tem alguma sugestão de algo que não foi mencionado, basta deixar aí nos comentários que no futuro podemos estar trazendo atualizações para este artigo. Também indico esses outros materiais relacionados com este assunto:

Até a próxima! :^)

Navegue por tópicos

  • O que é RegEx?

  • Como usar expressões regulares

    • Filtrando por termos no início e fim da linha

    • Filtrando termos dentro de um array

    • Filtrando termos maiúsculos e minúsculos

    • Filtrando utilizando caracteres curingas

    • Filtrando para diferentes termos

  • Considerações Finais

Tags:

  • Servidor Dedicado Linux
  • Servidor VPS

Julio Pires

Analista de Conteúdo Técnico na empresa HostGator e estudante de Física na UFSC. Gosta de maratonar séries, jogar jogos clássicos, nunca nega uma partida de xadrez e busca estar sempre atualizado com o mundo da tecnologia.

Mais artigos do autor

Garanta sua presença online

Encontre o nome perfeito para seu site

www.