0Pricing
Linux Command Line & Bash Scripting Mastery · Aula

Combinação de Regex com sed/awk

Integre expressões regulares aos comandos 'sed' e 'awk' para filtragem, substituição e extração avançadas de texto e dados.

Combinação de Regex com sed/awk é uma aula grátis de Linux Command Line & Bash Scripting Mastery no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Linux Command Line & Bash Scripting Mastery, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Linux Command Line & Bash Scripting Mastery inclui 4 aulas no total.

Expressões regulares com sed e awk

Bem-vindo à lição final sobre expressões regulares! Aprendemos sobre o poder das expressões regulares para correspondência de padrões.

Agora, vamos combinar esse poder com duas ferramentas essenciais do Linux: sed (editor de fluxo) e awk (linguagem de varredura e processamento de padrões). Essa integração permite realizar filtragem e substituição de texto e extração de dados de forma altamente avançada.

sed: filtrando com expressões regulares

O sed pode usar expressões regulares para filtrar linhas. O endereço /pattern/ permite que o sed aplique comandos somente às linhas que correspondem à expressão regular fornecida.

A opção -n suprime a saída padrão, e p imprime explicitamente as linhas correspondentes.

echo -e "apple
banana
orange" | sed -n '/an/p'

sed: substituindo com expressões regulares

O comando s/regex/replacement/ no sed é onde as expressões regulares realmente se destacam para a transformação de texto. Você pode substituir por um novo texto os padrões encontrados pela sua expressão regular.

O sinalizador g substitui todas as ocorrências em uma linha, e i torna a correspondência insensível a maiúsculas e minúsculas.

echo "Hello world, hello universe" | sed 's/hello/hi/gi'

sed: grupos de captura e referências retroativas

As expressões regulares permitem definir grupos de captura usando parênteses (). Depois, você pode fazer referência ao texto correspondente a esses grupos na string de substituição usando referências retroativas, como \1, \2 etc.

Use -E com sed para a sintaxe de expressões regulares estendidas (por exemplo, para usar () sem escape).

echo "Doe, John" | sed -E 's/([A-Za-z]+), ([A-Za-z]+)/\2 \1/'

awk: filtrando registros com expressões regulares

O awk usa padrões de expressões regulares para selecionar registros (linhas) antes de executar ações. Se um padrão for fornecido antes de um bloco de ação {...}, a ação será executada somente para as linhas que correspondem ao padrão.

Isso é semelhante ao grep, mas permite um processamento mais complexo.

echo -e "Line 1: apple
Line 2: banana
Line 3: orange" | awk '/banana/'

awk: expressões regulares em campos específicos

Você pode aplicar padrões de expressões regulares a campos específicos no awk usando os operadores ~ (corresponde) e !~ (não corresponde). Isso é muito poderoso para dados estruturados.

Por exemplo, $1 ~ /pattern/ verifica se o primeiro campo corresponde à expressão regular.

echo "Name: John, Age: 30
Name: Jane, Age: 25" | awk '$1 ~ /Name/ {print $2}'

awk: extraindo correspondências (match, substr)

O awk fornece funções como match(string, regex) para encontrar a posição e o comprimento de uma correspondência, e substr(string, start, length) para extraí-la.

Depois de match(), RSTART contém a posição inicial e RLENGTH contém o comprimento da correspondência.

echo "ItemCode: ABC123 Price: 45.67" | awk '{match($0, /[0-9]+\.[0-9]+/); print substr($0, RSTART, RLENGTH)}'

awk: substituição no próprio local (sub, gsub)

O awk também possui funções integradas para substituição: sub(regex, replacement, target) para a primeira correspondência e gsub(regex, replacement, target) para todas as correspondências.

Se target for omitido, $0 (o registro inteiro) será usado. Você pode especificar um campo, como $1.

echo "apple,banana,orange" | awk '{gsub(/a/, "X", $0); print}'

Escolhendo entre sed e awk

Embora tanto o sed quanto o awk possam usar expressões regulares para substituição e filtragem, cada um se destaca em áreas diferentes:

  • sed geralmente é melhor para transformações e substituições simples, linha por linha. Ele é um editor de fluxo.
  • awk é mais poderoso para processar dados estruturados (campos), realizar cálculos e lidar com lógica mais complexa ou padrões que abrangem várias linhas. Ele é uma linguagem de programação por si só.

Com frequência, eles podem ser encadeados com pipes | para tarefas muito complexas.

Desafio: extraia e transforme

Considere a seguinte linha de texto:

Order#12345: ProductX - Price $19.99

Qual comando extrairia corretamente o preço (por exemplo, '19.99') e depois mudaria o símbolo da moeda para 'EUR'?

Recapitulação: expressões regulares com sed e awk

Você dominou a combinação de expressões regulares com sed e awk!

  • sed se destaca na filtragem e substituição de texto linha por linha, usando expressões regulares para uma poderosa correspondência e substituição de padrões.
  • awk oferece uma abordagem mais programática, permitindo filtrar registros com expressões regulares, fazer correspondências em campos específicos e extrair ou modificar dados usando funções como match(), substr(), sub() e gsub().

Essa habilidade é essencial para o processamento avançado de texto e a criação de scripts no Linux.

Perguntas Frequentes

A aula “Combinação de Regex com sed/awk” é grátis?

Sim — o texto completo de “Combinação de Regex com sed/awk” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Linux Command Line & Bash Scripting Mastery, atualize para CoddyKit PRO. O curso de Linux Command Line & Bash Scripting Mastery inclui 4 aulas no total.

O que vou aprender em “Combinação de Regex com sed/awk”?

Integre expressões regulares aos comandos 'sed' e 'awk' para filtragem, substituição e extração avançadas de texto e dados. Você pratica Linux Command Line & Bash Scripting Mastery com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Linux Command Line & Bash Scripting Mastery?

Nenhuma experiência prévia é necessária. Linux Command Line & Bash Scripting Mastery no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Combinação de Regex com sed/awk”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Linux Command Line & Bash Scripting Mastery?

Sim. Cada aula de Linux Command Line & Bash Scripting Mastery inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Introdução às Expressões Regulares (Regex)
  2. Grep Avançado com Regex
  3. Combinação de Regex com sed/awk
  4. Grupos de Captura, Retroreferências e Substituição
← Voltar para Linux Command Line & Bash Scripting Mastery