Bash:
Usando expressões regulares

Como:

Correspondência de Padrões Básica

Para encontrar se uma string corresponde a um padrão, você pode usar grep, uma utilidade de linha de comando para pesquisar conjuntos de dados de texto simples para linhas que correspondam a uma expressão regular:

echo "Olá, Mundo!" | grep -o "Mundo"
# Saída: Mundo

Extraindo Dados Específicos

Para extrair partes de dados que correspondam aos seus padrões de regex, você pode usar -o com grep:

echo "Erro: Arquivo não encontrado" | grep -oE "[A-Za-z]+:"
# Saída: Erro:

Usando Regex com sed

sed (editor de fluxo) é uma utilidade poderosa para analisar e transformar texto. Veja como usar sed com regex para substituir texto:

echo "Bash é ótimo" | sed -e 's/ótimo/increível/'
# Saída: Bash é incrível

Correspondência de Padrões em Declarações Condicionais

Bash também suporta regex diretamente em declarações condicionais:

[[ "https://exemplo.com" =~ ^https?:// ]] && echo "URL é válida" || echo "URL é inválida"
# Saída: URL é válida

Correspondência de Padrões Avançada e Manipulação com awk

awk é outra ferramenta de processamento de texto que suporta extração e manipulação de dados mais complexos. Pode ser benéfico ao trabalhar com dados de texto estruturados, como CSVs:

echo -e "ID,Nome,Idade\n1,João,22\n2,Ana,24" | awk -F, '$3 > 22 {print $2 " é mais velho(a) que 22."}'
# Saída: Ana é mais velho(a) que 22.

Embora as funcionalidades incorporadas de regex do Bash cubram muitos casos de uso, para operações de regex muito avançadas, você pode considerar usar uma combinação de scripts Bash com scripts perl ou python, já que essas linguagens oferecem poderosas bibliotecas de regex (por exemplo, re em Python). Um exemplo simples com Python:

echo "Capture isso 123" | python3 -c "import sys; import re; print(re.search('(\d+)', sys.stdin.read()).group(0))"
# Saída: 123

Incorporar essas linguagens de programação quando necessário pode ajudá-lo a aproveitar o pleno poder do regex em seus scripts Bash.