Sistemas Operacionais e Introdução a Programação Módulo 1 – Sistemas Operacionais expressões regulares Prof. Tiago Semprebom Objetivos • Introdução a expressões regulares (ER). • Exemplos de algumas expressões regulares bastante utilizadas. Introdução • Uma expressão regular (ER) é um método formal de se especificar um padrão de texto. • É uma combinação de símbolos, caracteres com funções especiais (metacaracteres), que agrupados formam uma sequência (uma expressão). Expressões regulares • Servem para dizer algo abrangente de forma específica. Definindo o padrão de busca, tem-se uma lista finita de possibilidades de casamento. • Ex. [rgp]ato – Pode casar com “rato”, “gato” ou “pato”. Comando grep • Para não precisar listar o conteúdo do arquivo todo para sabermos os dados do usuário (root por exemplo), podemos usar o grep para pesquisar e nos retornar somente a linha dele. • Ex. – grep PALAVRA ARQUIVO – grep root /etc/passwd – Retorna a linha que contém a palavra root Conhecendo metacaracteres • O circunflexo ^: – Simboliza o início de uma linha. – Ex.: grep ^root /etc/passwd • Apresenta linhas onde a palavra root aparece no começo da linha. Conhecendo metacaracteres • O cifrão $: – Representa o fim de uma linha. – Ex.: grep bash$ /etc/passwd • Apresentamos todos os usuário além do root que utilizam o “bash” como shell. • Dica: sempre proteja sua expressão regular com aspas simples (Ex.: grep ‘bash$’ /etc/passwd). Conhecendo metacaracteres • A lista [ ]: – Pesquisar usuários com o nome Carlos. Pode existir dois usuários Carlos (um carlos e um acs). – Ex.: grep ‘[Cc]arlos’ /etc/passwd • Pesquisa por Carlos e carlos ao mesmo tempo. – Ex.: grep ‘^[aeiou]’ /etc/passwd • Procura por usuários cujo login comece com um vogal. Conhecendo metacaracteres • O ponto . – Ás vezes é necessário permitir “qualquer” caractere numa certa posição. – Ex. grep ‘^ . [aeiou]’ /etc/passwd • A partir do começo da linha, procure qualquer caractere seguido de uma vogal. – Ex. grep ‘^ ...........................$’ /etc/passwd • Linhas que possuem exatamente 27 caracteres Conhecendo metacaracteres • As chaves { } – Colocando um número entre chaves “{ }”, indica-se uma quantidade de repetições do caractere (ou metacaractere). – Ex.: egrep ‘^.{27}$’ /etc/passwd ou grep ‘^./{27/}$’ /etc/passwd • Faz o mesmo que o anterior, procura por linhas que tenham 27 caracteres, quaisquer. Conhecendo metacaracteres • egrep ‘^.{20,40}$’ /etc/passwd – Procurar por linhas que tenham de 20 a 40 caracteres. • egrep ‘^.{40.}$’ /etc/passwd – Obtem linhas que possuem 40 caracteres ou mais.