O documento fornece uma introdução sobre expressões regulares (ERs) e seus principais metacaracteres.
1) Apresenta o ambiente de testes usando o arquivo /etc/passwd e o comando grep;
2) Explica os metacaracteres ^, $, [], ., {}, |, ?, *, [], [-], que representam início de linha, fim de linha, lista de caracteres, qualquer caractere, repetição, OR, outros repetidores, lista negada e intervalo em listas;
3) Demonstra exemplos práticos de uso desses metacaracteres com o
O shell é o prompt da linha de comando do Unix e do Linux, que recebe e executa comandos digitados pelo usuário. Na linha de comando, podemos utilizar diversos comandos um após o outro. Se colocarmos diversas linhas de comandos em um arquivo texto, teremos um script em shell ou, um Shell Script. Além de comandos, um Shell Script pode conter todas as estruturas de uma linguagem de programação, como if, for, while, variáveis e funções.
Nesse minicurso veremos como automatizar tarefas usando Shell Script e conheceremos um pouco mais sobre alguns dos comandos mais úteis para serem utilizados tanto nos scripts quanto diretamente pela linha de comando.
Este documento fornece uma introdução ao Shell Script, explicando o que é Shell e script, como criar e executar scripts, utilizando variáveis, expressões, estruturas de controle como if/else, for, case e funções. Também aborda autocompletar, alias, variáveis de ambiente e exemplos práticos.
O documento descreve um minicurso sobre desenvolvimento de aplicações em Shell Script com interface gráfica interativa utilizando a ferramenta Dialog. O minicurso aborda conceitos básicos de Shell Script e Dialog, além de apresentar exemplos práticos de uso da Dialog para construção de interfaces gráficas em Shell Script.
O documento apresenta uma introdução aos shells e shell scripts, abordando tópicos como: o que são shells, os principais tipos de shells existentes, o que são shell scripts e suas principais características, sintaxe básica de shell scripts incluindo variáveis, comandos, estruturas de controle e funções. Também apresenta exemplos de uso de recursos como redirecionamento, caracteres curinga e manipulação de parâmetros.
O documento lista comandos e marcadores em Python, explica tipos de dados, sintaxes utilizadas e identificação de erros. Também começa a desenvolver um conversor de dólares para reais definindo a cotação do dólar na data.
Fugindo para as colinas com Python - Julio Biason - Tchelinux Bento Gonçalves...Tchelinux
Este documento apresenta um exemplo de código Python para randomizar uma frase usando consoantes aleatórias. Ele define uma lista de consoantes e uma string com marcadores de posição, e usa funções para embaralhar as consoantes e substituí-las na string, gerando variações da frase.
O documento discute shell scripts no Linux. Ele apresenta uma introdução aos shells e scripts, como criar e executar scripts simples, usar variáveis e comandos dentro de scripts, e estruturas de controle como if/else e loops. O documento também fornece exemplos passo a passo e exercícios para praticar shell scripting.
O shell é o prompt da linha de comando do Unix e do Linux, que recebe e executa comandos digitados pelo usuário. Na linha de comando, podemos utilizar diversos comandos um após o outro. Se colocarmos diversas linhas de comandos em um arquivo texto, teremos um script em shell ou, um Shell Script. Além de comandos, um Shell Script pode conter todas as estruturas de uma linguagem de programação, como if, for, while, variáveis e funções.
Nesse minicurso veremos como automatizar tarefas usando Shell Script e conheceremos um pouco mais sobre alguns dos comandos mais úteis para serem utilizados tanto nos scripts quanto diretamente pela linha de comando.
Este documento fornece uma introdução ao Shell Script, explicando o que é Shell e script, como criar e executar scripts, utilizando variáveis, expressões, estruturas de controle como if/else, for, case e funções. Também aborda autocompletar, alias, variáveis de ambiente e exemplos práticos.
O documento descreve um minicurso sobre desenvolvimento de aplicações em Shell Script com interface gráfica interativa utilizando a ferramenta Dialog. O minicurso aborda conceitos básicos de Shell Script e Dialog, além de apresentar exemplos práticos de uso da Dialog para construção de interfaces gráficas em Shell Script.
O documento apresenta uma introdução aos shells e shell scripts, abordando tópicos como: o que são shells, os principais tipos de shells existentes, o que são shell scripts e suas principais características, sintaxe básica de shell scripts incluindo variáveis, comandos, estruturas de controle e funções. Também apresenta exemplos de uso de recursos como redirecionamento, caracteres curinga e manipulação de parâmetros.
O documento lista comandos e marcadores em Python, explica tipos de dados, sintaxes utilizadas e identificação de erros. Também começa a desenvolver um conversor de dólares para reais definindo a cotação do dólar na data.
Fugindo para as colinas com Python - Julio Biason - Tchelinux Bento Gonçalves...Tchelinux
Este documento apresenta um exemplo de código Python para randomizar uma frase usando consoantes aleatórias. Ele define uma lista de consoantes e uma string com marcadores de posição, e usa funções para embaralhar as consoantes e substituí-las na string, gerando variações da frase.
O documento discute shell scripts no Linux. Ele apresenta uma introdução aos shells e scripts, como criar e executar scripts simples, usar variáveis e comandos dentro de scripts, e estruturas de controle como if/else e loops. O documento também fornece exemplos passo a passo e exercícios para praticar shell scripting.
O documento apresenta uma introdução à shell script, descrevendo a filosofia dos sistemas Unix, o que é shell e bash, estruturas de controle e utilitários úteis como awk, sed e grep. O palestrante também discute como criar e executar scripts shell.
Documentar seu código é importante para facilitar a compreensão e manutenção do código por outros desenvolvedores no futuro. A documentação deve descrever o comportamento do código de forma clara e concisa, sem detalhes de implementação, e incluir parâmetros, retornos e referências. Boas práticas como Readme Driven Development envolvem escrever a documentação antes do código.
O documento apresenta uma introdução ao editor de textos matemáticos LaTeX, descrevendo sua história, como baixar o programa Texmaker e a estrutura básica de um documento no LaTeX.
O documento discute o uso de comandos grep e expressões regulares para pesquisar arquivos e listar informações. Ele também apresenta um programa simples para catalogar uma coleção de CDs, recebendo parâmetros e anexando-os a um arquivo existente. O autor explica como passar parâmetros para programas e lista exemplos de uso de grep, ls e outras ferramentas de linha de comando.
Pymordida0 Semana de computação da SOCIESC - 2008/10Marco Mendes
O documento apresenta uma introdução ao Python, abordando tópicos como:
- Blocos de código por indentação
- Tipos de dados básicos como números, strings, listas e dicionários
- Operadores e funções com esses tipos de dados
- Listas comprehensions para gerar listas de forma concisa
O documento descreve diversas ferramentas de linha de comando do Linux ("power tools") que permitem maior eficiência e automatismo em tarefas. Apresenta comandos como shell, man, alias, awk, sed, tr, grep, find, xargs, screen e strace, explicando suas funções e sintaxes básicas.
1) O documento discute comandos do shell Bash, incluindo funções, parâmetros, variáveis e controle de fluxo.
2) São apresentados exemplos e 14 práticas para exercitar o uso de funções, variáveis, arrays, operadores e laços no Bash.
3) As práticas incluem criar funções, usar variáveis internas e externas, lidar com arrays, fazer operações matemáticas e controlar fluxos usando if/else e laços for.
Python é uma linguagem de programação interpretada, orientada a objetos e de uso amplo. Ela pode ser usada para desenvolvimento web, desktop, científico, jogos e mais. Python é portável, extensível e de código aberto.
RSpec Best Friends @ TDC Florianópolis 2014Mauro George
O documento fornece dicas sobre testes com RSpec, incluindo: 1) sintaxe de expectativas com RSpec; 2) descrição de testes; 3) uso de contextos e sujeitos; 4) integração com ferramentas como WebMock, VCR e Factory Girl.
Este archivo contiene información necesaria acerca de la transmisión de valores hacia los niños que puede ser aplicada tanto en la escuela como en el hogar en base a los talleres que contiene....
El documento define varios tipos de documentos de marketing y negocios, incluyendo cartillas, folletos, plegables, brochures, portafolios de servicios, planes de negocios y diseños corporativos. Para cada tipo de documento, describe brevemente su propósito y los pasos clave para elaborarlo.
Este documento fornece respostas a perguntas sobre bullying e violência na escola. Explica que o bullying envolve agressão intencional repetida contra alguém mais fraco, e que a escola é um local onde ocorre com frequência devido à dificuldade em supervisionar todos os alunos. Recomenda que vítimas de bullying contem a um adulto e evitem ficar sozinhas, e que testemunhas também devem contar a um adulto.
Este documento describe algunas atracciones turísticas en los departamentos de Risaralda, Quindío y Caldas en Colombia. Menciona que las mejores fiestas taurinas se encuentran en Manizales, Caldas, y que en Armenia, Quindío se pueden encontrar parques urbanos para compartir en familia ambientes naturales. También menciona atracciones en Pereira, Risaralda.
1. O AB IPBox 55HD é um receptor HDTV com sistema operacional Linux ideal para quem faz contas ao seu dinheiro, fornecendo muito software adicional.
2. Apesar de ter apenas um sintonizador, permite recepção remota via satélite e streaming de áudio e vídeo pela internet.
3. O software dual boot em breve disponível permitirá ao usuário escolher entre os softwares Enigma 1HD e Enigma 2HD com compartilhamento de configurações.
Iso ts aplicada como suporte a rastreabilidade no setor automobilisticoAlexandre Bento
O documento discute como a norma ISO TS 16949, aplicada à indústria automotiva, exige rastreabilidade total de peças e componentes, melhorando a qualidade e produtividade. Apresenta a evolução da norma e seus requisitos, analisando como a implementação da norma em uma empresa melhorou a rastreabilidade do processo produtivo, aumentando a competitividade e diminuindo retrabalhos.
A empresa de tecnologia anunciou um novo smartphone com câmera avançada, tela grande e bateria de longa duração por um preço acessível. O aparelho tem como objetivo atrair mais consumidores para a marca e aumentar sua participação no competitivo mercado de smartphones.
Este documento define la comunidad y sus diferentes tipos según el espacio geográfico y finalidad de organización. Explica que una comunidad está compuesta por personas que comparten características e intereses y viven en un área común. Luego clasifica las comunidades en emocionales, estructurales y funcionales, y describe los elementos, funciones y formas de participación comunitaria. Finalmente, analiza los factores que favorecen y afectan el desarrollo de una comunidad.
El documento describe los cuatro sectores económicos principales - primario, secundario, terciario y cuaternario - y sus actividades características. También define una cadena productiva como una sucesión de etapas de transformación que llevan los insumos a un producto final. Finalmente, propone tres objetivos relacionados con el uso de tecnologías de información y comunicación para integrar procesos e instituciones y preservar la confidencialidad.
1. O documento descreve um teste realizado ao receptor HDTV Fulan ST7111 com sistema operacional próprio Spark e plataforma online de suporte.
2. O receptor oferece excelente desempenho, design ergonômico e interface intuitiva, além de suporte online contínuo via plataforma Spark.
3. O sistema operacional Spark e a plataforma online da Fulan fornecem aos usuários recursos avançados e atendimento personalizado.
El documento resume diferentes tipos de búsqueda en inteligencia artificial, incluyendo búsqueda ciega, heurística y con adversarios. Describe estrategias como búsqueda en anchura, profundidad, bidireccional y con heurísticas como gradiente. Explica conceptos clave como función de evaluación heurística y cómo la búsqueda con adversarios analiza problemas con múltiples oponentes que modifican el estado del sistema.
O documento apresenta a programação de dois dias de um programa de liderança integral. O primeiro dia aborda temas como presença consciente, teoria integral, liderança servidora e resistência à mudança. O segundo dia foca em práticas de vida integral como yoga, sustentabilidade e espiritualidade, além de atividades como constelação familiar e dança circular.
O documento apresenta uma introdução à shell script, descrevendo a filosofia dos sistemas Unix, o que é shell e bash, estruturas de controle e utilitários úteis como awk, sed e grep. O palestrante também discute como criar e executar scripts shell.
Documentar seu código é importante para facilitar a compreensão e manutenção do código por outros desenvolvedores no futuro. A documentação deve descrever o comportamento do código de forma clara e concisa, sem detalhes de implementação, e incluir parâmetros, retornos e referências. Boas práticas como Readme Driven Development envolvem escrever a documentação antes do código.
O documento apresenta uma introdução ao editor de textos matemáticos LaTeX, descrevendo sua história, como baixar o programa Texmaker e a estrutura básica de um documento no LaTeX.
O documento discute o uso de comandos grep e expressões regulares para pesquisar arquivos e listar informações. Ele também apresenta um programa simples para catalogar uma coleção de CDs, recebendo parâmetros e anexando-os a um arquivo existente. O autor explica como passar parâmetros para programas e lista exemplos de uso de grep, ls e outras ferramentas de linha de comando.
Pymordida0 Semana de computação da SOCIESC - 2008/10Marco Mendes
O documento apresenta uma introdução ao Python, abordando tópicos como:
- Blocos de código por indentação
- Tipos de dados básicos como números, strings, listas e dicionários
- Operadores e funções com esses tipos de dados
- Listas comprehensions para gerar listas de forma concisa
O documento descreve diversas ferramentas de linha de comando do Linux ("power tools") que permitem maior eficiência e automatismo em tarefas. Apresenta comandos como shell, man, alias, awk, sed, tr, grep, find, xargs, screen e strace, explicando suas funções e sintaxes básicas.
1) O documento discute comandos do shell Bash, incluindo funções, parâmetros, variáveis e controle de fluxo.
2) São apresentados exemplos e 14 práticas para exercitar o uso de funções, variáveis, arrays, operadores e laços no Bash.
3) As práticas incluem criar funções, usar variáveis internas e externas, lidar com arrays, fazer operações matemáticas e controlar fluxos usando if/else e laços for.
Python é uma linguagem de programação interpretada, orientada a objetos e de uso amplo. Ela pode ser usada para desenvolvimento web, desktop, científico, jogos e mais. Python é portável, extensível e de código aberto.
RSpec Best Friends @ TDC Florianópolis 2014Mauro George
O documento fornece dicas sobre testes com RSpec, incluindo: 1) sintaxe de expectativas com RSpec; 2) descrição de testes; 3) uso de contextos e sujeitos; 4) integração com ferramentas como WebMock, VCR e Factory Girl.
Este archivo contiene información necesaria acerca de la transmisión de valores hacia los niños que puede ser aplicada tanto en la escuela como en el hogar en base a los talleres que contiene....
El documento define varios tipos de documentos de marketing y negocios, incluyendo cartillas, folletos, plegables, brochures, portafolios de servicios, planes de negocios y diseños corporativos. Para cada tipo de documento, describe brevemente su propósito y los pasos clave para elaborarlo.
Este documento fornece respostas a perguntas sobre bullying e violência na escola. Explica que o bullying envolve agressão intencional repetida contra alguém mais fraco, e que a escola é um local onde ocorre com frequência devido à dificuldade em supervisionar todos os alunos. Recomenda que vítimas de bullying contem a um adulto e evitem ficar sozinhas, e que testemunhas também devem contar a um adulto.
Este documento describe algunas atracciones turísticas en los departamentos de Risaralda, Quindío y Caldas en Colombia. Menciona que las mejores fiestas taurinas se encuentran en Manizales, Caldas, y que en Armenia, Quindío se pueden encontrar parques urbanos para compartir en familia ambientes naturales. También menciona atracciones en Pereira, Risaralda.
1. O AB IPBox 55HD é um receptor HDTV com sistema operacional Linux ideal para quem faz contas ao seu dinheiro, fornecendo muito software adicional.
2. Apesar de ter apenas um sintonizador, permite recepção remota via satélite e streaming de áudio e vídeo pela internet.
3. O software dual boot em breve disponível permitirá ao usuário escolher entre os softwares Enigma 1HD e Enigma 2HD com compartilhamento de configurações.
Iso ts aplicada como suporte a rastreabilidade no setor automobilisticoAlexandre Bento
O documento discute como a norma ISO TS 16949, aplicada à indústria automotiva, exige rastreabilidade total de peças e componentes, melhorando a qualidade e produtividade. Apresenta a evolução da norma e seus requisitos, analisando como a implementação da norma em uma empresa melhorou a rastreabilidade do processo produtivo, aumentando a competitividade e diminuindo retrabalhos.
A empresa de tecnologia anunciou um novo smartphone com câmera avançada, tela grande e bateria de longa duração por um preço acessível. O aparelho tem como objetivo atrair mais consumidores para a marca e aumentar sua participação no competitivo mercado de smartphones.
Este documento define la comunidad y sus diferentes tipos según el espacio geográfico y finalidad de organización. Explica que una comunidad está compuesta por personas que comparten características e intereses y viven en un área común. Luego clasifica las comunidades en emocionales, estructurales y funcionales, y describe los elementos, funciones y formas de participación comunitaria. Finalmente, analiza los factores que favorecen y afectan el desarrollo de una comunidad.
El documento describe los cuatro sectores económicos principales - primario, secundario, terciario y cuaternario - y sus actividades características. También define una cadena productiva como una sucesión de etapas de transformación que llevan los insumos a un producto final. Finalmente, propone tres objetivos relacionados con el uso de tecnologías de información y comunicación para integrar procesos e instituciones y preservar la confidencialidad.
1. O documento descreve um teste realizado ao receptor HDTV Fulan ST7111 com sistema operacional próprio Spark e plataforma online de suporte.
2. O receptor oferece excelente desempenho, design ergonômico e interface intuitiva, além de suporte online contínuo via plataforma Spark.
3. O sistema operacional Spark e a plataforma online da Fulan fornecem aos usuários recursos avançados e atendimento personalizado.
El documento resume diferentes tipos de búsqueda en inteligencia artificial, incluyendo búsqueda ciega, heurística y con adversarios. Describe estrategias como búsqueda en anchura, profundidad, bidireccional y con heurísticas como gradiente. Explica conceptos clave como función de evaluación heurística y cómo la búsqueda con adversarios analiza problemas con múltiples oponentes que modifican el estado del sistema.
O documento apresenta a programação de dois dias de um programa de liderança integral. O primeiro dia aborda temas como presença consciente, teoria integral, liderança servidora e resistência à mudança. O segundo dia foca em práticas de vida integral como yoga, sustentabilidade e espiritualidade, além de atividades como constelação familiar e dança circular.
El documento describe tres tipos de valores: el valor real, que es la cantidad de dinero que realmente se paga por una acción en el mercado y puede ser mayor que el valor nominal; el valor nominal, que es un precio de referencia asignado por la entidad emisora de un título o valor; y el valor que representa la cantidad de dinero recibida originalmente a cambio del título o valor.
El documento presenta la idea de una nueva empresa llamada Isjoyoradi formada por 6 estudiantes del Liceo Moderno de Magangué, Colombia. La empresa busca ofrecer alternativas para mejorar el futuro de sus familias sin contaminar el medio ambiente. El nombre de la empresa se deriva de las iniciales de los nombres de sus 6 fundadores originales más un nuevo integrante llamado Jesús Duvan.
Este documento resume la Ley de Delitos Informáticos de Colombia. Explica que la ley fue creada en 2009 para castigar delitos como el acceso abusivo a sistemas informáticos, la interceptación de datos sin autorización, el daño informático y la violación de datos personales. También indica que quienes cometan estos delitos pueden enfrentar penas de hasta 10 años de prisión y multas de hasta 1500 salarios mínimos según lo establecido en la ley 1273 de 2009.
La autora realizó una encuesta para determinar los temas de salud más importantes para los niños. Los resultados mostraron que los niños prefieren aprender sobre salud de una manera divertida e interactiva, como a través de un diagrama interactivo creado en una hoja de cálculo.
Catálogo completo do 2º Leilão Boi com Bula Premium - 18 de agosto de 2014, a partir das 21h no tatersal Rubico Carvalho, durante a Expogenética em Uberaba/MG
Transmissão Canal TerraViva
Informações: BrasilcomZ (16) 3203-8815
Cadastro e reservas de mesa: Central Leilões (18) 3608-0999
El documento describe varias amenazas comunes en línea como vulnerabilidades, ingeniería social, estafas, hoaxes y sitios web maliciosos. También explica spyware, programas potencialmente no deseados, rootkits y virus, así como diferentes métodos para analizar un equipo en busca de este tipo de amenazas, incluyendo análisis de archivos específicos, de toda la máquina y desde línea de comandos. Finalmente, menciona que se estima que hasta 100.000 millones de mensajes de spam se envían diariamente en todo el mundo
Una red de computadoras conecta tres o más dispositivos a través de enlaces físicos o inalámbricos para compartir información y recursos utilizando protocolos de red. Las redes pueden ser locales, metropolitanas o amplias y usan diferentes topologías como alambradas, de anillo, de bus o de estrella.
1) O documento apresenta os principais metacaracteres utilizados em expressões regulares, como o circunflexo, cifrão, lista, ponto e outros.
2) É ensinado como utilizar o comando grep junto com expressões regulares para pesquisar em arquivos, como o /etc/passwd.
3) Aprende-se a combinar metacaracteres para criar padrões de pesquisa mais complexos e obter resultados específicos.
Este documento apresenta uma introdução ao shell script em 3 partes:
1. Ensina como criar um primeiro script simples que executa 3 comandos e melhorá-lo para fornecer saída mais clara e interação com o usuário.
2. Discutem conceitos importantes como variáveis, comandos e testes para aprimorar scripts.
3. Fornece exemplos de scripts mais avançados usando parâmetros, expressões aritméticas, if/for/while e exercícios para praticar.
Este documento apresenta um tutorial introdutório sobre a linguagem de programação Python. Ele contém informações sobre características básicas da linguagem, variáveis, strings, operações matemáticas, estruturas de controle e módulos. O tutorial foi produzido pelo grupo PET-Tele da Universidade Federal Fluminense para estudantes de engenharia de telecomunicações.
O documento apresenta uma introdução à linguagem de programação Ruby, destacando sua história, bibliotecas disponíveis, comunidade ativa e usos em diversas aplicações. Também resume os principais conceitos da linguagem como sintaxe, orientação a objetos, meta-programação, coleções, blocos de código, operadores condicionais e de loop.
O documento introduz o paradigma funcional de programação, descrevendo suas características principais como tratamento da computação como avaliação de funções matemáticas e evitação de estado mutável. Explica a história do paradigma funcional e fornece exemplos de código funcional em Haskell, incluindo funções como soma de lista e quicksort.
Introdução ao Desenvolvimento WEB com Ruby on RailsJulio Betta
Slides que utilizei para ministrar uma palestra sobre Desenvolvimento WEB com Ruby on Rails no IV Congresso de Iniciação Científica da Faculdade Redentor de Itaperuna / RJ.
Versão PDF aqui: https://www.dropbox.com/s/2fkwksu00chm7nu/presentation.pdf
1. O documento apresenta uma aula introdutória sobre programação em Python.
2. A aula inclui tópicos como "Hello World", variáveis, condicionais, laços, funções, classes e módulos.
3. O documento serve como um manual de referência rápida sobre os principais conceitos e recursos da linguagem Python.
O documento fornece uma introdução aos scripts em shell, ensinando como criar um script simples com três comandos e resolvendo problemas comuns de execução. É explicado como adicionar comandos a um arquivo, torná-lo executável e melhorar a saída. Conceitos avançados como variáveis, expressões e estruturas de controle são apresentados.
O documento fornece uma introdução aos scripts em shell, explicando:
1) O que são scripts em shell e como criar um primeiro script simples;
2) Como melhorar um script adicionando saída formatada, interação com o usuário e comentários;
3) Conceitos importantes como variáveis, comandos e operadores.
Este documento apresenta um curso sobre a linguagem de programação Python. Ele inclui seções sobre conceitos básicos da linguagem, como tipagem forte e orientação a objetos, além de explicar como usar o interpretador Python, módulos, funções built-in como help() e dir(), e tipos de dados como strings e listas.
O documento descreve o Java Compiler Compiler (JavaCC), um gerador de parsers para a linguagem Java. JavaCC recebe como entrada uma especificação de gramática e gera um parser para reconhecer aquela gramática. Explica como escrever gramáticas no formato JavaCC, incluindo definições léxicas, produções e ações semânticas.
O documento resume 55 novas funcionalidades do Java 7, incluindo: literais binários e numéricos com underline, strings no switch, gerenciamento automático de recursos com try-with-resources, e novas APIs para concorrência, arquivos e números aleatórios.
O documento discute o uso de comandos grep e expressões regulares no Linux. Explica como usar grep, egrep e fgrep para pesquisar arquivos e saídas de comandos, dando exemplos de como limitar a pesquisa ao início ou fim de linhas. Também introduz o desenvolvimento de um programa Shell para catalogar CDs usando passagem de parâmetros.
1. O documento discute os conceitos fundamentais de algoritmos e programação, incluindo estruturas de algoritmos, variáveis, tipos de dados, definição de variáveis e atribuição de valores.
2. É explicado que variáveis representam posições de memória com nomes simbólicos que podem armazenar informações, e são definidos os principais tipos de dados em Pascal como inteiro, real, caractere e cadeia.
3. São mostrados exemplos básicos de definição de variáveis e atribuição de valores em Pascal e algoritmos.
O documento discute como trabalhar na linha de comando em sistemas Linux, incluindo:
1) Usar comandos de shell, histórico de comandos e variáveis;
2) Personalizar o ambiente shell através de arquivos de configuração como .bashrc.
Este documento fornece uma introdução ao curso de Perl, incluindo: 1) uma breve explicação do que é Perl e suas principais características; 2) uma lista dos principais tópicos que serão abordados no curso, como variáveis, operações, listas, arquivos e estruturas de controle.
Este documento fornece uma introdução sobre algoritmos, incluindo:
1) As fases de um algoritmo, como definir o problema, estudar a situação, escrever o programa e testar a solução.
2) A estrutura básica de um algoritmo com definições, início e fim.
3) Uma explicação sobre variáveis, como posições de memória com nomes simbólicos que podem conter diferentes informações.
1. O documento apresenta um curso introdutório sobre LaTeX, abordando tópicos como instalação, estrutura básica, ambientes matemáticos, figuras, tabelas e bibliografia.
2. É dividido em capítulos tratando de tópicos como editoração de texto, formatação, equações, figuras, tabelas e criação de documentos como artigos, monografias, slides e posters.
3. Apresenta exemplos de código LaTeX e comandos para cada tópico, visando ensinar os conceitos básicos necess
O documento apresenta os conceitos fundamentais de algoritmos e programação, definindo o que é um algoritmo, suas etapas e estrutura, variáveis e tipos de dados, e como definir variáveis em Pascal. Explica que um algoritmo é um caminho lógico para resolver um problema, e que se aprende algoritmos através da prática de construir e testar algoritmos, não apenas copiando ou estudando-os.
O documento discute registros e arrays no Pascal, definindo-os como estruturas de dados para armazenar coleções de dados similares. Registros armazenam variáveis sequencialmente na memória, permitindo acesso aos campos por índice. Arrays podem ter múltiplas dimensões e são úteis para repetições. O comando With no Pascal simplifica o acesso aos campos dos registros.
Em um mundo cada vez mais digital, a segurança da informação tornou-se essencial para proteger dados pessoais e empresariais contra ameaças cibernéticas. Nesta apresentação, abordaremos os principais conceitos e práticas de segurança digital, incluindo o reconhecimento de ameaças comuns, como malware e phishing, e a implementação de medidas de proteção e mitigação para vazamento de senhas.
Este certificado confirma que Gabriel de Mattos Faustino concluiu com sucesso um curso de 42 horas de Gestão Estratégica de TI - ITIL na Escola Virtual entre 19 de fevereiro de 2014 a 20 de fevereiro de 2014.
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...Faga1939
Este artigo tem por objetivo apresentar como ocorreu a evolução do consumo e da produção de energia desde a pré-história até os tempos atuais, bem como propor o futuro da energia requerido para o mundo. Da pré-história até o século XVIII predominou o uso de fontes renováveis de energia como a madeira, o vento e a energia hidráulica. Do século XVIII até a era contemporânea, os combustíveis fósseis predominaram com o carvão e o petróleo, mas seu uso chegará ao fim provavelmente a partir do século XXI para evitar a mudança climática catastrófica global resultante de sua utilização ao emitir gases do efeito estufa responsáveis pelo aquecimento global. Com o fim da era dos combustíveis fósseis virá a era das fontes renováveis de energia quando prevalecerá a utilização da energia hidrelétrica, energia solar, energia eólica, energia das marés, energia das ondas, energia geotérmica, energia da biomassa e energia do hidrogênio. Não existem dúvidas de que as atividades humanas sobre a Terra provocam alterações no meio ambiente em que vivemos. Muitos destes impactos ambientais são provenientes da geração, manuseio e uso da energia com o uso de combustíveis fósseis. A principal razão para a existência desses impactos ambientais reside no fato de que o consumo mundial de energia primária proveniente de fontes não renováveis (petróleo, carvão, gás natural e nuclear) corresponde a aproximadamente 88% do total, cabendo apenas 12% às fontes renováveis. Independentemente das várias soluções que venham a ser adotadas para eliminar ou mitigar as causas do efeito estufa, a mais importante ação é, sem dúvidas, a adoção de medidas que contribuam para a eliminação ou redução do consumo de combustíveis fósseis na produção de energia, bem como para seu uso mais eficiente nos transportes, na indústria, na agropecuária e nas cidades (residências e comércio), haja vista que o uso e a produção de energia são responsáveis por 57% dos gases de estufa emitidos pela atividade humana. Neste sentido, é imprescindível a implantação de um sistema de energia sustentável no mundo. Em um sistema de energia sustentável, a matriz energética mundial só deveria contar com fontes de energia limpa e renováveis (hidroelétrica, solar, eólica, hidrogênio, geotérmica, das marés, das ondas e biomassa), não devendo contar, portanto, com o uso dos combustíveis fósseis (petróleo, carvão e gás natural).
As classes de modelagem podem ser comparadas a moldes ou
formas que definem as características e os comportamentos dos
objetos criados a partir delas. Vale traçar um paralelo com o projeto de
um automóvel. Os engenheiros definem as medidas, a quantidade de
portas, a potência do motor, a localização do estepe, dentre outras
descrições necessárias para a fabricação de um veículo
2. Índice
Sobre o Curso...........................................................................................................1
Introdução..................................................................................................................2
O ambiente de testes................................................................................................3
Conhecendo o arquivo /etc/passwd..................................................................3
Conhecendo o comando grep...........................................................................4
Conhecendo cada um dos metacaracteres............................................................5
O circunflexo ^ ...................................................................................................5
O cifrão $ ...........................................................................................................5
A lista [].............................................................................................................6
O ponto ............................................................................................................7
As chaves {}......................................................................................................8
O curinga .* (AND)............................................................................................9
O ou | (OR) ......................................................................................................10
Os outros repetidores: ? * +............................................................................10
A lista negada [^].............................................................................................10
O intervalo em listas [−] ..................................................................................11
.
A tabela ASCII .........................................................................................................12
.
A tabela dos metacaracteres.................................................................................13
Escapar ou não escapar?.......................................................................................14
Para saber mais.......................................................................................................15
i
3. Sobre o Curso
Nome
Conhecendo as Expressões Regulares
Instrutor
Aurélio Marinho Jargas (http://aurelio.net)
Objetivo
Desmistificar e ensinar aos alunos todos os metacaracteres básicos,
preparando−os para comporem suas próprias expressões.
Pré−Requisitos
Noções básicas de informática e operação do sistema pela linha de comando.
Público Alvo
Desenvolvedores, administradores de sistemas, programadores e
interessados em geral.
Duração
8 horas
1
4. Introdução
Expressões Regulares. Um assunto que muitos torcem o nariz ao ouvir falar, mas
que sempre acaba aparecendo na resolução dos mais diversos problemas.
Para quem não conhece ou não domina o assunto, é difícil perceber a utilidade de
saber escrever todos aqueles símbolos estranhos. Mas à medida que vai se
aprendendo, aplicando, tudo começa a clarear.
Este mini−curso apresentará os componentes utilizados nas expressões e ensinará
como utilizá−los.
Uma Expressão Regular (ER) é um método formal de se especificar um padrão de
texto.
É uma composição de símbolos, caracteres com funções especiais, chamados
"metacaracteres" que, agrupados entre si e com caracteres literais, formam uma
seqüência, uma expressão. Essa expressão é testada em textos e retorna sucesso
caso esse texto obedeça exatamente a todas as suas condições. Diz−se que o
texto "casou" com a expressão.
A ERs servem para se dizer algo abrangente de forma específica. Definido o padrão
de busca, tem−se uma lista (finita ou não) de possibilidades de casamento. Em um
exemplo rápido, [rgp]ato pode casar "rato", "gato" e "pato".
As ERs são úteis para buscar ou validar textos variáveis como:
• data
• horário
• número IP
• endereço de e−mail
• endereço de Internet
• declaração de uma função()
• dados na coluna N de um texto
• dados que estão entre <tags></tags>
• número de telefone, RG, CPF, cartão de crédito
Vários editores de texto e linguagens de programação têm suporte a ERs, então o
tempo investido em seu aprendizado é recompensado pela larga variedade de
aplicativos onde ele pode ser praticado.
2
5. O ambiente de testes
Para conhecer e desvendar os segredos das Expressões Regulares, usaremos o
comando grep, que serve para "pescar" linhas dentro de um texto. Você informa
uma palavra e o grep retorna todas as linhas do texto em que ele encontrar essa
palavra.
Conhecendo o arquivo /etc/passwd
O arquivo de dados que usaremos nos testes será o /etc/passwd, a base de
usuários de um sistema UNIX/Linux. Então, primeiro vamos conhecer o que tem
dentro desse tal passwd:
$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
news:x:9:13:news:/etc/news:
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash
carlos:x:500:500:carlos:/home/carlos:/bin/bash
ana:x:501:501:Ana Paula Moreira:/home/ana:/bin/bash
acs:x:502:502:Antonio Carlos Silva:/home/acs:/bin/bash
$
São várias linhas, uma para cada usuário. O separador de informações é o
caractere dois−pontos ":" e cada linha possui sete campos, no seguinte formato:
login : senha : UID : GID : Nome Completo : Diretório $HOME : shell
Todas as senhas estão protegidas em outro arquivo, por isso há somente uma letra
"x" em seu lugar. Analisando a primeira linha, sabemos que ela é referente ao
administrador do sistema ("root"). Seu número de usuário (UID) e seu número de
grupo são iguais: zero. Seu nome é "root" mesmo, seu diretório padrão é o "/root" e
seu shell de login é "bash".
3
6. Conhecendo o comando grep
Para não precisar listar o conteúdo do arquivo todo para saber os dados do usuário
"root", podemos usar o grep para pesquisar e nos retornar somente a linha dele. O
formato do comando grep é o seguinte:
grep PALAVRA ARQUIVO
É simples, basta passar a palavra desejada e o nome do arquivo aonde procurar
por ela. Como queremos "pescar" somente a linha do usuário root, basta fazer:
$ grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
$
Epa! Além da linha do root, o grep retornou também a linha do usuário "operator".
Mas por que isso se a pesquisa era somente por "root"?
Olhando mais atentamente para a linha do usuário operator, vemos que o seu
diretório $HOME é "/root". Como dissemos ao grep "procure por root", as duas
linhas são resultados válidos.
Para obter somente a linha desejada, seria preciso haver uma maneira de dizer ao
grep "procure por root no início da linha". É neste momento que as Expressões
Regulares entram em cena.
Além de palavras, o grep também entende ERs. Uma expressão é formada por
caracteres normais que formam palavras (letras e números) como "root", mas
também por símbolos especais, os chamados metacaracteres.
4
7. Conhecendo cada um dos metacaracteres
Cada metacaractere é uma ferramenta que tem uma função específica. Eles servem
para dar mais poder às pesquisas, informando padrões e posições impossíveis de
se especificar usando somente caracteres normais.
Os metacaracteres são pequenos pedacinhos simples que agrupados entre si, ou
com caracteres normais, formam algo maior, uma expressão. O importante é
compreender bem cada um individualmente, e depois apenas lê−los em seqüência.
O circunflexo ^
O primeiro metacaractere que veremos é o circunflexo "^" (ou chapéuzinho), que
simboliza o início de uma linha. Podemos usá−lo para resolver o problema anterior
de obter somente a linha do usuário root:
$ grep ^root /etc/passwd
root:x:0:0:root:/root:/bin/bash
$
Funcionou! Reveja o que acabamos de fazer: passamos ao grep uma Expressão
Regular composta pelo metacaractere circunflexo, seguido da palavra "root".
Não confunda, não procuramos pelo texto "^root", mas sim pela palavra "root" no
início da linha. Que diferença faz um simples ^ hein?
O cifrão $
O circunflexo é chamado de metacaractere de posicionamento, pois representa uma
posição específica da linha. Seu primo é o cifrão "$", que representa o fim de uma
linha.
Lembra que o último campo de cada linha do arquivo "passwd" é o shell de login do
usuário? Agora com o metacaractere cifrão podemos pesquisar todos os usuários,
além do root, que usam o "bash" como shell:
$ grep bash$ /etc/passwd
root:x:0:0:root:/root:/bin/bash
mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash
carlos:x:500:500:carlos:/home/carlos:/bin/bash
ana:x:501:501:Ana Paula Moreira:/home/ana:/bin/bash
acs:x:502:502:Antonio Carlos Silva:/home/acs:/bin/bash
$
5
8. A Expressão Regular "bash$" procura pela palavra "bash" no final da linha. Ou
ainda, a palavra "bash" seguida de um fim de linha.
Esse cifrão é o mesmo caractere que é utilizado para identificar as variáveis do
shell, como $PWD e $HOME. Para evitar possíveis problemas com a expansão de
variáveis, é preciso "proteger" a Expressão Regular passada ao grep. A proteção é
feita se colocando a ER entre 'aspas simples'. Isso evitará muitas dores de cabeça.
Dica nº1: No shell, sempre proteja as ERs com 'aspas simples'
O comando anterior, agora 'aspeado', fica:
$ grep 'bash$' /etc/passwd
Juntando os dois metacaracteres já vistos, temos na mão uma ER muito útil que
serve para encontrar linhas em branco:
^$
O que é uma linha em branco senão um começo de linha seguido de um fim de
linha? Guarde essa ER num cantinho especial de sua memória, pois é comum
precisar dela nos problemas do dia a dia.
Mas como nem só de começo e fim de linha são compostos os problemas,
precisamos conhecer os outros metacaracteres disponíveis.
A lista []
Mudando um pouco de tarefa, que tal pesquisar os usuários que possuem o nome
"Carlos"? No arquivo de exemplo há dois, o "carlos" e o "acs". Vamos tentar obter
ambos com o grep:
$ grep 'carlos' /etc/passwd
carlos:x:500:500:carlos:/home/carlos:/bin/bash
$ grep 'Carlos' /etc/passwd
acs:x:502:502:Antonio Carlos Silva:/home/acs:/bin/bash
$
Puxa vida... Um está em minúsculas e o outro com a primeira letra maiúscula,
sendo preciso usar o grep duas vezes para extraí−los. Para resolver este problema
com apenas um comando, novamente precisaremos dos poderes das Expressões
Regulares!
O terceiro metacaractere que veremos é a "lista". Basta colocar entre colchetes "[]"
todos os caracteres que podem aparecer em uma determinada posição. Podem ser
6
9. tantos quantos se precise, mas em nosso caso apenas dois bastam, "C" e "c":
$ grep '[Cc]arlos' /etc/passwd
carlos:x:500:500:carlos:/home/carlos:/bin/bash
acs:x:502:502:Antonio Carlos Silva:/home/acs:/bin/bash
$
Repare bem no detalhe, toda a "lista" (os colchetes e seu conteúdo) vale para
apenas uma posição, um caractere. A ER "[Cc]arlos" serve para pesquisar por
"Carlos" e "carlos" ao mesmo tempo.
Dica nº2: A lista, por maior que seja, representa apenas um caractere
Podemos combinar a lista com um dos metacaracteres já vistos, produzindo uma
ER mais poderosa:
$ grep '^[aeiou]' /etc/passwd
adm:x:3:4:adm:/var/adm:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
ana:x:501:501:Ana Paula Moreira:/home/ana:/bin/bash
acs:x:502:502:Antonio Carlos Silva:/home/acs:/bin/bash
$
Este comando procura por usuários cujo login comece com uma vogal! Note o uso
do circunflexo para "amarrar" a pesquisa no início da linha. Traduzindo essa ER,
fica: busque por linhas que começam com a letra "a", ou "e", ou "i" ou "o" ou "u".
Para fazer o inverso e buscar as linhas que começam com consoantes, a ER fica
bem mais comprida, pois é necessário especificar todas as letras:
$ grep '^[bcdfghjklmnpqrstvwxyz]' /etc/passwd
O ponto .
Às vezes, é necessário permitir "qualquer" caractere numa certa posição. Por
exemplo, para procurar usuários onde a segunda letra do login seja uma vogal,
como "mario", e "jose", mas não "ana". Não importa qual é a primeira letra, pode ser
qualquer uma, mas a segunda deve ser uma vogal.
O ponto é o metacaractere que significa "qualquer letra". E mais, na verdade ele
significa "qualquer caractere", pois além de letras ele pode representar um número,
um símbolo, um TAB, enfim: qualquer caractere.
$ grep '^.[aeiou]' /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
7
10. daemon:x:2:2:daemon:/sbin:/sbin/nologin
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
news:x:9:13:news:/etc/news:
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
carlos:x:500:500:carlos:/home/carlos:/bin/bash
$
Esta expressão diz: "À partir do começo da linha, procure qualquer caractere
seguido de uma vogal".
O ponto também pode ser usado para se procurar por linhas de um tamanho fixo,
independente do seu conteúdo. Que tal se obter apenas as linhas que possuam
exatamente 27 caracteres?
$ grep '^...........................$' /etc/passwd
news:x:9:13:news:/etc/news:
$
Será que ali tem 27 pontos mesmo? Como saber ao certo? Estranho isso de ficar
colocando vários pontinhos né?
As chaves {}
Como Expressões Regulares são bacanas, elas facilitam este tipo de tarefa
também. Colocando um número entre chaves "{}", indica−se uma quantidade de
repetições do caractere (ou metacaractere) anterior:
$ egrep '^.{27}$' passwd
news:x:9:13:news:/etc/news:
$
Essa expressão faz o mesmo que a anterior: procura por linhas que tenham 27
caracteres, quaisquer que sejam eles. A vantagem é que basta olhar o número de
repetições, não precisa ficar contando os pontinhos.
Dica nº3: .{27} é igual a 27 pontos!
Note que foi usado o egrep e não o grep. É porque as chaves fazem parte de um
conjunto avançado de Expressões Regulares ("extended"), então o egrep lida
melhor com elas. Se fosse para usar o grep normal, teria que "escapar" as chaves:
$ grep '^.{27}$' /etc/passwd
8
11. Feio! Vamos usar somente o egrep daqui pra frente para evitar tais escapes.
As chaves ainda aceitam intervalos, sendo possível informar uma faixa de
repetições válidas, com mínimo e máximo. Para procurar por linhas que tenham de
20 a 40 caracteres:
$ egrep '^.{20,40}$' /etc/passwd
Se omitir o segundo número e manter a vírgula, fica uma faixa aberta, sem fim.
Assim pode se informar repetições de "no mínimo N vezes". Para obter as linhas
que possuem 40 caracteres ou mais:
$ egrep '^.{40,}$' /etc/passwd
E claro, essa repetição também pode ser usada para caracteres comuns ou outros
metacaracteres além do ponto. Que tal repetir uma lista? Um bom exemplo é
procurar os usuários que têm um UID ou GID de três dígitos ou mais:
$ egrep '[0123456789]{3,}' /etc/passwd
games:x:12:100:games:/usr/games:/sbin/nologin
carlos:x:500:500:carlos:/home/carlos:/bin/bash
ana:x:501:501:Ana Paula Moreira:/home/ana:/bin/bash
acs:x:502:502:Antonio Carlos Silva:/home/acs:/bin/bash
$
Nesse exemplo a ER pesquisou por "qualquer número repetido no mínimo três
vezes", ou seja, com um mínimo de três dígitos.
O curinga .* (AND)
Quando se procura por dois trechos específicos numa mesma linha, não importando
o que há entre eles, usa−se o curinga ".*" para significar "qualquer coisa".
Um exemplo é procurar os usuários que começam com vogais e usam o shell bash:
$ egrep '^[aeiou].*bash$' /etc/passwd
ana:x:501:501:Ana Paula Moreira:/home/ana:/bin/bash
acs:x:502:502:Antonio Carlos Silva:/home/acs:/bin/bash
$
Ou seja, procuramos por uma linha que comece com uma vogal e termine com a
palavra "bash", não importando o que tem no meio, pode ser qualquer coisa. Essa
ER funcionou mais ou menos como um AND lógico, onde só casa se tiver as duas
pesquisas.
Dica nº4: .* é qualquer coisa, inclusive nada
9
12. O ou | (OR)
Para fazer o OR lógico, onde se procura por uma coisa ou outra, deve−se usar o
pipe "|" e delimitar as opções com os parênteses "()":
$ egrep '^(ana|carlos|acs):' /etc/passwd
carlos:x:500:500:carlos:/home/carlos:/bin/bash
ana:x:501:501:Ana Paula Moreira:/home/ana:/bin/bash
acs:x:502:502:Antonio Carlos Silva:/home/acs:/bin/bash
$
Essa ER casa apenas as linhas dos três usuários citados. Ela começa procurando
no início da linha "^", depois procura ou a palavra "ana", ou a palavra "carlos", ou a
palavra "acs", seguido pelo dois−pontos.
Os outros repetidores: ? * +
Outros metacaracteres que podem ser usados são o asterisco, o mais e a
interrogação (chamado opcional). Eles definem quantidades e funcionam como as
chaves, porém com uma sintaxe mais prática:
Meta Nome Equivalente Descrição
? opcional {0,1} Pode aparecer ou não (opcional)
* asterisco {0,} Pode aparecer em qualquer quantidade
+ mais {1,} Deve aparecer no mínimo uma vez
A lista negada [^]
Ainda temos mais detalhes para ver nas listas!
Lembra do comando para pesquisar os usuários que iniciam o login com
consoantes?
$ grep '^[bcdfghjklmnpqrstvwxyz]' /etc/passwd
Como é incômodo ter que colocar todas essas letras, também é possível "negar"
uma lista, especificando quais os caracteres que não são válidos em uma posição.
Assim, para buscar as consoantes, podemos dizer "busque por linhas que não
comecem com vogais":
$ grep '^[^aeiou]' /etc/passwd
10
13. Veja como negar uma lista é fácil! Caso o primeiro caractere dentro dos colchetes
seja um circunflexo, ele inverterá o sentido dessa lista, tornando−a uma "lista
negada". Ela casará qualquer caractere, EXCETO os listados após o "^".
Mas tenha cuidado, use a lista negada com cautela. Negar alguns caracteres
significa permitir todos os outros! Números, símbolos, TAB e espaço em branco
também fazem parte de "qualquer caractere exceto vogais". Em nosso exemplo
atual isso não atrapalha, mas tenha sempre em mente que essa negação é bem
abrangente.
Dica nº5: Atenção, negar uma lista significa permitir "todo o resto"
O intervalo em listas [−]
Outra facilidade da lista é a possibilidade de se indicar intervalos, faixas. Basta
colocar um hífen entre duas letras que ele será expandido para todas as letras
existentes no intervalo. Por exemplo "a−f" é interpretado como "todas as letras
entre a e f, inclusive", ou seja "abcdef".
Reescrevendo o exemplo de procurar por números de três dígitos ou mais, que
tinha sido:
$ egrep '[0123456789]{3,}' /etc/passwd
Agora fica:
$ egrep '[0−9]{3,}' /etc/passwd
Além de letras e números, o intervalo funciona para símbolos e outros caracteres. A
ordem "oficial" é a ordem que os caracteres ocupam na tabela ASCII.
Dica nº6: [0−9] é o mesmo que [0123456789]
11
15. A tabela dos metacaracteres
Meta Nome Posicionamento
^ circunflexo Representa o começo da linha
$ cifrão Representa o fim da linha
Texto
[abc] lista Casa as letras 'a' ou 'b' ou 'c'
[a−d] lista Casa as letras 'a' ou 'b' ou 'c' ou 'd'
[^abc] lista negada Casa qualquer caractere, exceto 'a', 'b' e 'c'
(esse|aquele) ou Casa as palavras 'esse' ou 'aquele'
Quantidade I
a{2} chaves Casa a letra 'a' duas vezes
a{2,4} chaves Casa a letra 'a' de duas a quatro vezes
a{2,} chaves Casa a letra 'a' no mínimo duas vezes
Quantidade II
a? opcional Casa a letra 'a' zero ou uma vezes
a* asterisco Casa a letra 'a' zero ou mais vezes
a+ mais Casa a letra 'a' uma ou mais vezes
Curingas
. ponto Casa um caractere qualquer
.* curinga Casa qualquer coisa, é o tudo e o nada
Atenção: Não confundir os metacaracteres com os curingas do shell. Na linha de
comando usa−se "*.txt", "arquivo−??.txt" e "arquivo.{txt,html}" para
expressar mais de um arquivo. Estes são curingas, e não metacaracteres.
Há uma similaridade e equivalência entre as ações, mas ERs são usadas em
programas como grep, sed e awk, e os curingas são usados na linha de comando,
para expandir nomes de arquivos.
Shell ERs
* .*
? .
{,} (|)
13
16. Escapar ou não escapar?
Dependendo do aplicativo, a sintaxe das ERs pode ser diferente da do egrep. No
sed e awk por exemplo (bem como no grep), as chaves e o "ou" devem ser
escapados para serem especiais.
Infelizmente a implementação de Expressões Regulares pelos programas é uma
selva, e não tem como fugir do decoreba dessa tabela:
Programa opc mais chaves borda ou grupo
awk ? + − − | ()
egrep ? + {,} b | ()
emacs ? + − b | ()
find ? + − b | ()
gawk ? + {,} <> | ()
grep ? + {,} b | ()
sed ? + {,} <> | ()
vim = + {,} <> | ()
14
17. Para saber mais
Há programas para auxiliar o aprendizado de Expressões Regulares. O txt2regex
(http://txt2regex.sourceforge.net) é um programa modo texto que constrói ERs
apenas mostrando menus (em português) ao usuário, que escolhe o que quer. Já
para a interface gráfica, tem o Regex Coach (http://www.weitz.de/regex−coach/),
com versões para Linux e Windows.
Para aprofundar−se no assunto, leia o livro "Expressões Regulares", disponível
online em http://aurelio.net/er. A lista de discussão sed−br é um lugar onde dúvidas
podem ser tiradas: http://br.groups.yahoo.com/group/sed−br.
15