Expressões regulares, ou regex, são formas de descrever precisamente cadeias de caracteres, sem a necessidade de informar todos os elementos. Para formar uma expressão regular, utilizam-se caracteres especiais, chamados metacaracteres.
Metacaracteres:
- \ :: (escape) Indica que o próximo caractere será interpretado literalmente.
- ^ :: (circunflexo) Utilizado para indicar o início de uma linha.
- $ :: (cifrão) Utilizado para indicar o fim de uma linha.
- [...] :: (lista) Utilizada para indicar uma lista de caracteres permitidos.
- [^...] :: (lista negada) Utilizada para indicar uma lista de caracteres proibidos.
- . :: (ponto) Utilizado para indicar qualquer caractere único, exceto um espaço em branco.
- ? :: (opcional) Utilizado para indicar um caractere opcional (pode ou não existir).
- * :: (asterisco) Utilizado para indicar qualquer caractere ou cadeia de caracteres.
O comando
grep:
Este comando é utilizado para filtrar a saída de um outro comando, ou arquivos de texto, procurando por uma palavra ou expressão regular. O
grep é "case sensitive", para ignorar maiúsculas e minúsculas, deve-se usar o parâmetro
-i (ignore case).
Alguns exemplos de seu uso:
1. Contar quantas vezes a expressão procurada se repete:
grep -c expressao arquivo
2. Mostrar todas as linhas que contém a expressão procurada:
grep -h expressao arquivo
3. Mostrar todas as linhas, exceto as que contém a expressão procurada:
grep -v expressao arquivo
4. Mostrar as linhas com a expressão procurada e as X linhas anteriores:
grep -B X expressao arquivo # Sendo X um número inteiro
5. Mostrar as linhas com a expressão procurada e as X linhas posteriores:
grep -A X expressao arquivo # Sendo X um numero inteiro
O comando
sed:
Este comando recebe como entrada um arquivo e busca e altera seu conteúdo, de acordo com as regras especificadas pelo usuário. O
sed não altera o arquivo original, altera somente o conteúdo que é direcionado para a saída padrão.
Sua sintaxe é:
sed opções expressao arquivo
Opções comuns:
- d :: Deleta as linhas que casam com a expressão procurada.
- q :: Termina o sed após encontrar uma linha com a expressão procurada.
- p :: Mostra na tela todas as linhas que contenham a expressão procurada.
- s :: Substitui a expressão (quando encontrada) por uma outra pré-definida.
Alguns exemplos de seu uso, são:
1. Imprimir as linhas que contém uma determinada cadeia de caracteres:
sed -n '/palavra/p' arquivo
2. Apagar as linhas que contém uma determinada cadeia de caracteres:
sed '/palavra/d' arquivo
3. Substituir uma cadeia de caracteres por outra:
sed 's/palavra/novaPalavra' arquivo
4. Terminar o
sed após encontrar a cadeia de caracteres procurada:
sed '/palavra/q' arquivo