Remember to maintain security and privacy. Do not share sensitive information. Procedimento.com.br may make mistakes. Verify important information. Termo de Responsabilidade
As expressões regulares, ou regex, são sequências de caracteres que formam um padrão de busca. Elas são extremamente úteis para a manipulação de texto e são amplamente utilizadas em diversas áreas da computação, como análise de logs, validação de dados e processamento de texto. No ambiente Linux, o uso de regex é particularmente poderoso devido à integração com várias ferramentas de linha de comando, como grep
, sed
e awk
. Este artigo explorará como utilizar regex no Linux, oferecendo exemplos práticos para que você possa aplicar esses conhecimentos em suas tarefas diárias.
Exemplos:
Usando grep
com regex
O comando grep
é uma das ferramentas mais comuns para buscar padrões em arquivos de texto. Veja como utilizá-lo com regex:
# Busca por linhas que contêm a palavra "erro" em um arquivo de log
grep "erro" /var/log/syslog
# Busca por linhas que começam com "erro"
grep "^erro" /var/log/syslog
# Busca por linhas que terminam com "falha"
grep "falha$" /var/log/syslog
# Busca por linhas que contêm um número de telefone no formato (XXX) XXX-XXXX
grep "\([0-9]\{3\}\) [0-9]\{3\}-[0-9]\{4\}" /var/log/syslog
Usando sed
com regex
O sed
é uma ferramenta de stream editor que permite buscar e substituir texto usando regex:
# Substitui todas as ocorrências de "erro" por "ERRO" em um arquivo de texto
sed 's/erro/ERRO/g' arquivo.txt
# Remove todas as linhas que contêm "DEBUG"
sed '/DEBUG/d' arquivo.txt
# Adiciona "LOG:" no início de cada linha
sed 's/^/LOG: /' arquivo.txt
# Substitui números de telefone no formato (XXX) XXX-XXXX por XXX-XXX-XXXX
sed 's/(\([0-9]\{3\}\)) \([0-9]\{3\}\)-\([0-9]\{4\}\)/\1-\2-\3/' arquivo.txt
Usando awk
com regex
O awk
é uma linguagem de programação orientada a padrões que pode ser usada para manipulação de texto:
# Imprime linhas que contêm a palavra "erro"
awk '/erro/' arquivo.txt
# Imprime a segunda coluna de linhas que contêm a palavra "erro"
awk '/erro/ {print $2}' arquivo.txt
# Substitui "erro" por "ERRO" em todas as linhas e imprime o resultado
awk '{gsub(/erro/, "ERRO"); print}' arquivo.txt
# Imprime linhas que começam com um número
awk '/^[0-9]/' arquivo.txt