Tutorial de expressão regular do Linux: exemplo Grep Regex

Índice:

Anonim

O que são expressões regulares do Linux?

Expressões regulares do Linux são caracteres especiais que ajudam a pesquisar dados e a 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.

  • Expressões regulares básicas
  • Expressões regulares de intervalo
  • Expressões regulares estendidas
  • Resumo

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ções
. substitui qualquer personagem
corresponde ao início da string
$ corresponde ao final da string
* corresponde a zero ou mais vezes o caractere anterior
\ Representam caracteres especiais
() Expressões regulares de grupos
? Corresponde exatamente a um caractere

Vamos ver um exemplo.

Execute cat sample para ver o conteúdo de um arquivo existente

Pesquise conteúdo que contenha a letra 'a'.

' ^ ' corresponde ao início de uma string. Vamos pesquisar por conteúdo que COMEÇA com um

Apenas as linhas que começam com caractere são filtradas. As linhas que não contêm o caractere '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 estão

Expressão Descrição
{n}

Corresponde ao caractere anterior que aparece 'n' vezes exatamente

{n, m} Corresponde ao caractere anterior aparecendo 'n' vezes, mas não mais do que m
{n,} Corresponde ao caractere anterior apenas quando aparece 'n' vezes ou mais

Exemplo:

Filtre todas as linhas que contêm o caractere 'p'

Queremos verificar se o caractere 'p' aparece exatamente 2 vezes em uma string, um após o outro. 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 as 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 em uma sequência são separados por dois pontos "…".

Alguns exemplos:

Nos exemplos acima, o comando echo cria strings usando a expansão de chave.

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ções
. substitui qualquer personagem
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} Corresponde ao caractere anterior que aparece 'n' vezes exatamente
{n, m} Corresponde ao caractere anterior aparecendo 'n' vezes, mas não mais do que m
{n,} Corresponde ao caractere anterior apenas quando aparece 'n' vezes ou mais
  • A expansão da chave é usada para gerar strings. Ajuda na criação de várias strings de uma.