Expressões regulares no Linux

3,964 views

Published on

Curso dado no Debian Festival 3.0 (Maceió - Alagoas - Brasil ) http://wiki.enec.org.br/AL/DebianFestival3 ::: Expressões regulares são usadas há muito tempo na Computação e têm várias aplicações práticas. Esse minicurso vai focar como elas podem ser usadas no Linux, através dos programas sed (Stream EDitor) e grep (Global Regular ExPression?). Além disso, as Expressões Regulares aparecem em várias linguagens de programação através de bibliotecas e API's de linguagens de programação como Java (classe Matcher), Perl, Javascript, dentre outras.

Published in: Technology
1 Comment
0 Likes
Statistics
Notes
  • Be the first to like this

No Downloads
Views
Total views
3,964
On SlideShare
0
From Embeds
0
Number of Embeds
13
Actions
Shares
0
Downloads
46
Comments
1
Likes
0
Embeds 0
No embeds

No notes for slide

Expressões regulares no Linux

  1. 1. ˜ Expressoes regulares no Linux ´caro Medeiros I ˆ ¸˜ Universidade Federal de Pernambuco - Mestrado em Ciencia da Computacao Debian Festival 3.0, 16 de agosto de 2008
  2. 2. ¸˜ Introducao ´ ´ Historico rapido ¸˜ Motivacoes ˜ O que sao ER? ´ Usos basicos grep sed (Stream EDitor) ¸˜ Uso em linguagens de programacao Java Perl DO IT YOURSELF!
  3. 3. Era uma vez... Termo apareceu com dois neurologistas ˆ Linguagens formais e automatos ˜ quem nao estudou, deveria ¸˜ ´ 50s - Kleene (descricao formal matematica) orientando do Church, regular sets ˜ Linguagem SNOBOL - Pioneira em casamento de padroes ˜ nao exatamente ER Editor de textos Unix ed ¸˜ usando a notacao de Kleene grep (Global Regular Expression Print) - nome herdado do comando g/re/p do ed.
  4. 4. ´ Mais historico ¸˜ sed (Strem EDitor) - Evolucao do grep sed - Facilitando a vida dos coitados dos sysadmins desde 1973 ˜ Expressoes regulares nas linguagens: C (regex) - Uma das primeiras Perl - built-in Java - API’s e classes Javascript E por a´ em diante... ı
  5. 5. Vantagens: Pra que ER? ´ Rapido pra processar strings fazendo casamento de ˜ padroes (pattern matching) Formalismo bem conhecido Produtividade ´ sysadmin com conhecimento de ER e melhor! Muitos softwares a usam (processadores de texto, IDE’s, Google, etc), mas poucos conhecem como aplicar ER. passar horas pra resolver problemas simples ˜ Veremos mais vantagens a seguir, nao perca.
  6. 6. Desvantagens ` Sintaxe as vezes pouco intuitiva ˜ Por isso, pra quem nao conhece ER: writability ruim, ´ legibilidade tambem.
  7. 7. ¸˜ Definicoes ´ ¸˜ ˜ Metodo formal para especificacao de padroes de texto, constitu´do de: ı Strings ¸˜ S´mbolos com funcoes especiais ı Grupos desses s´mbolos ı ˜ Expressoes indicando regras. ˜ Exemplo: todas as palavras no texto com o padrao A duas vezes seguidas, sem espacos, ou seja, palavras com a ¸ string AA.
  8. 8. ´ Usos basicos ˆ ˜ Procurar um texto que voce nao lembra exatamente como ´ ´ ¸˜ e, mas tem ideia das variacoes poss´veis ı Procurar strings em locais espec´ficos da linha ou da ı palavra (sysadmins, acalmai-vos!) vi /etc/apt/sources.list ˜ Programadores especificando padroes complexos - ([Rr]ecuperac˜o|[Ee]xtrac˜o de Informac˜o). ¸a ¸a ¸a
  9. 9. ¸˜ Apresentacao do grep e toy example Programa simples, originalmente feito pro Unix ´ ˜ Retorna as linhas que contem um certo padrao de string entrado Uso comum: cat /etc/apt/sources.list | grep restricted
  10. 10. Mais exemplos de grep # Exibe as palavras que comecam com cat grep -E ’<cat’ cats.txt
  11. 11. Pra fechar o grep # Retorna as Pamelas da minha lista de telefone (acentos ignorados) cat lista.txt | grep -E ’".*[pP]am.*"’
  12. 12. ¸˜ Apresentacao - SED ˜ Editor de textos nao interativo ¸˜ ´ Edicao automatizada de documentos, atraves de regras Quase uma LP Uso pra um sysadmin: Verificar automaticamente senhas em branco, apenas com numeros, apenas com letras! ´
  13. 13. ˜ Quando nao usar Para editar apenas um documento ¸˜ Alteracoes simples que podem ser feitas num editor de texto “normal”.
  14. 14. Como funciona Filtro: Entrada X - Sa´da Y ı Conversor: Entrada X - Sa´da X’ ı Enderecos ou documento inteiro ¸ Uso intensivo de ER.
  15. 15. Exemplos de brinquedo II - Em sed Imprimindo linhas (p de print) sed ’p’ cats.txt ˜ Script que nao faz nada! sed ’1,2d’ cats.txt > cats2.txt ?
  16. 16. Mais exemplos ´ ´ Ta mas, qual e a sintaxe mais usada em sed? Comando s (substitute) sed ’s/cat/dog/g’ cats.txt
  17. 17. Os metacaracteres Vamos para o PDF!
  18. 18. ER em Java java.util.regex Classe Matcher
  19. 19. Perl, o mestre das strings e das ER Sintaxe de ER built-in if (grep /([Cc]omput|[Ii]nformat)/, @$c) { $text = $page->text; $title = $page->title; }
  20. 20. Que problemas podemos resolver? Que arquivos de configuracao ¸˜ podemos modificar com sed ´ pra realizar tarefas basicas de ¸˜ administracao de sistema?

×