Tutorial de expressão regular do Linux: exemplo de Grep Regex
O que são expressões regulares do Linux?
Expressões regulares do Linux são caracteres especiais que ajudam a pesquisar dados e combinar padrões complexos. Expressões regulares são abreviadas como 'regexp' ou 'regex'. Eles são usados em muitos programas Linux como grep, bash, rename, sed, etc.
Tipos de expressões regulares
Para facilitar a compreensão, vamos aprender os diferentes tipos de Regex um por um.
Clique aqui se o vídeo não estiver acessível
Expressões regulares básicas
Alguns dos comandos comumente usados com expressões regulares são tr, sed, vi e grep. Listados abaixo estão alguns dos Regex básicos.
Símbolo | Descrição |
---|---|
. | substitui qualquer caractere |
^ | corresponde ao início da string |
$ | corresponde ao final da string |
* | corresponde a zero ou mais vezes o caractere anterior |
\ | Representa caracteres especiais |
() | Agrupa expressões regulares |
? | Corresponde exatamente a um caractere |
Vamos ver um exemplo.
Execute cat sample para ver o conteúdo de um arquivo existente
Pesquise conteúdo contendo a letra 'a'.
'^'corresponde ao início de uma string. Vamos procurar conteúdo que COMEÇA com um
Somente as linhas que começam com caractere são filtradas. As linhas que não contêm o caracter 'a' no início são ignoradas.
Vejamos outro exemplo -
Selecione apenas as linhas que terminam com t usando $
Expressões regulares de intervalo
Essas expressões nos informam sobre o número de ocorrências de um caractere em uma string. Eles são
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 |
Exemplo:
Filtre todas as linhas que contenham o caractere 'p'
Queremos verificar se o caracter 'p' aparece exatamente 2 vezes em uma string, uma após a outra. Para isso a sintaxe seria:
cat sample | grep -E p\{2}
Nota: Você precisa adicionar -E com essas expressões regulares.
Expressões regulares estendidas
Essas expressões regulares contêm combinações de mais de uma expressão. Alguns deles 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 |
Exemplo:
Procurando por todos os caracteres 't'
Suponha que queremos filtrar linhas onde o caractere 'a' precede o caractere 't'
Podemos usar comandos como
cat sample|grep "a\+t"
Expansão da cinta
A sintaxe para expansão de chaves é uma sequência ou uma lista separada por vírgulas de itens entre chaves “{}”. Os itens inicial e final de uma sequência são separados por dois pontos “..”.
Alguns exemplos:
Nos exemplos acima, o comando echo cria strings usando a expansão de chaves.
Resumo:
- Expressões regulares são um conjunto de caracteres usados para verificar padrões em strings
- Eles também são chamados de 'regexp' e 'regex'
- É importante aprender expressões regulares para escrever scripts
- Algumas expressões regulares básicas são:
Símbolo | Descrição |
---|---|
. | substitui qualquer caractere |
^ | corresponde ao início da string |
$ | corresponde ao final da string |
- Algumas expressões regulares estendidas 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 |
- Algumas expressões regulares de intervalo são:
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 |
- A expansão de chaves é usada para gerar strings. Ajuda na criação de várias strings a partir de uma.