Tutorial de expressão regular do Linux: exemplo de Grep Regex
⚡ Resumo Inteligente
As expressões regulares do Linux são sequências de caracteres especiais que pesquisam dados e encontram padrões complexos em ferramentas como grep, sed e vi, usando formas básicas, de intervalo, estendidas e de expansão de chaves para filtrar o texto com precisão.

Expressões regulares são um dos recursos mais poderosos de Linux Ferramentas de texto que permitem encontrar, filtrar e transformar dados com padrões compactos. Esta página explica as formas básica, de intervalo e estendida, além da expansão de chaves, com exemplos práticos do grep.
O que são expressões regulares do Linux?
Expressões regulares do Linux são caracteres especiais que ajudam a pesquisar dados e encontrar padrões complexos. Expressões regulares são abreviadas como 'regexp' ou 'regex'. Elas são usadas em muitos programas do Linux, como... grep, bash, renomear, sed e muito mais.
Tipos de expressões regulares
Para facilitar a compreensão, vamos aprender os diferentes tipos de expressões regulares um por um. Esta página aborda expressões regulares básicas, de intervalo e estendidas, e termina com a expansão de chaves.
Expressões regulares básicas
Alguns dos comandos comumente usados que funcionam com expressões regulares são tr, sed, vie grep. A tabela abaixo lista algumas das expressões regulares básicas.
| Símbolo | Descrição |
|---|---|
| . | Substitui qualquer caractere |
| ^ | Corresponde ao início de uma string |
| $ | Corresponde ao final de uma string |
| * | Corresponde zero ou mais vezes ao caractere anterior. |
| \ | Representa caracteres especiais |
| () | Agrupa expressões regulares |
| ? | Corresponde exatamente a um caractere. |
Vejamos um exemplo. Primeiro, execute o comando `cat sample` para exibir o conteúdo de um arquivo existente, como mostrado abaixo.
Em seguida, procure por conteúdo que contenha a letra 'a'. A captura de tela abaixo mostra o grep retornando todas as linhas que incluem um 'a'.
O acento circunflexo '^' corresponde ao início de uma string. O exemplo abaixo pesquisa conteúdo que começa com a letra 'a'.
Apenas as linhas que começam com o caractere são filtradas. Linhas que não contêm o caractere 'a' no início são ignoradas.
Vejamos outro exemplo. A captura de tela abaixo mostra novamente o conteúdo do arquivo de exemplo antes da filtragem pelo final da linha.
Selecione apenas as linhas que terminam com a letra 't' usando o caractere '$' como âncora, conforme mostrado abaixo.
Expressões regulares de intervalo
Essas expressões especificam o número de ocorrências de um caractere em uma string. Elas estão listadas abaixo.
| Expressão | Descrição |
|---|---|
| {não} | Corresponde exatamente ao caractere anterior que aparece 'n' vezes |
| {n, m} | Corresponde ao caractere anterior que aparece 'n' vezes, mas não mais do que m |
| {n,} | Corresponde ao carácter anterior apenas quando aparece 'n' vezes ou mais |
Por exemplo, filtre todas as linhas que contêm o caractere 'p'. A captura de tela abaixo mostra as linhas correspondentes.
Agora verifique se o caractere 'p' aparece exatamente duas vezes em uma string, uma após a outra. A sintaxe para isso é:
cat sample | grep -E p\{2}
O resultado da correspondência por intervalo é mostrado abaixo.
Nota: Você precisa adicionar -E com essas expressões regulares.
Expressões regulares estendidas
Essas expressões regulares combinam mais de uma expressão. Algumas delas são:
| Expressão | Descrição |
|---|---|
| \+ | Corresponde a uma ou mais ocorrências do caractere anterior |
| \? | Corresponde a zero ou uma ocorrência do caractere anterior |
Por exemplo, pesquise todas as ocorrências do caractere 't'. A captura de tela abaixo mostra o resultado.
Suponha que você queira filtrar as linhas onde o caractere 'a' precede o caractere 't'. Você pode usar um comando como o abaixo:
cat sample|grep "a\+t"
O resultado é mostrado na captura de tela a seguir.
Expansão da cinta
A sintaxe para expansão de chaves é uma sequência ou uma lista de itens separados por vírgulas dentro de chaves '{}'. Os itens inicial e final de uma sequência são separados por dois pontos '..'.
Alguns exemplos são mostrados abaixo.
Nos exemplos acima, o comando echo cria strings usando expansão de chaves, produzindo múltiplas strings a partir de um único padrão.










