SlideShare ist ein Scribd-Unternehmen logo
1 von 36
Downloaden Sie, um offline zu lesen
Expressões
Regulares
regex
Bóson Treinamentos 2013
Fábio dos Reis
Expressões Regulares
Expressões Regulares são conjuntos de
caracteres usados para procurar e
manipular textos em arquivos, pastas, etc,
baseados em padrões.
Podem ser usadas com inúmeros comandos
do Linux e em linguagens de programação.
Bóson Treinamentos 2013
Fábio dos Reis
Metacaracteres
Caracteres que possuem significado
especial.
Transformam caracteres literais em
expressões poderosas.
São os seguintes:
 . * + - { } [ ] ^ $ | ? ( ) : ! =
Os metacaracteres podem ter mais de um
significado, dependendo do contexto de
uso.
Obs. Aspas NÃO são metacaracteres,
Bóson Treinamentos 2013
Fábio dos Reis
Metacaracteres
Caracter único
Representamos qualquer caracter único
com um ponto .
grep ".orte" arquivo #Retorna as linhas que contém a string
orte, independente da primeira letra.
grep -i "f.b" /etc/passwd
Bóson Treinamentos 2013
Fábio dos Reis
Metacaracteres - escape
E se quiséssemos usar o ponto . como
caractere literal, e não metacaractere?
Então usaremos outro metacaractere para
indicar o "escape" do ponto: a barra 
A barra dará ao caractere na sequência um
significado alternativo - em vez de
metacaractere, será tratado como caractere
literal normal.
Ex.: Imagine um texto contendo as strings
2.000, 2,000 e 2-000. Teste as regex a
seguir e veja a diferença:
grep 2.00 string
Bóson Treinamentos 2013
Fábio dos Reis
Conjuntos ou Classes de
Caracteres
- São listas de caracteres escritas dentro de
colchetes [ ] e que são usadas para
corresponder apenas um dos caracteres
listados.
- Permite selecionar um dos caracteres
dentro dos colchetes, não importando a
ordem.
Bóson Treinamentos 2013
Fábio dos Reis
Classes de Caracteres mais usadas
[0-3] Faixa que equivale a [0123]
[a-k] equivale a [abcdefghijk]
[A-C] equivale a [ABC]
[A-Ca-k] equivale a [ABCabcdefghijk]
Expressões POSIX:
[[:alpha:]] equivale a [a-zA-Z]
[^[:alpha:]] Negação de caracteres alfabéticos
[[:upper:]] equivale a [A-Z]
[[:lower:]] equivale a [a-z]
[[:digit:]] equivale a [0-9]
[[:alnum:]] equivale a [0-9a-zA-Z]
[[:space:]] qualquer espaço e branco, incluindo tabulações
Bóson Treinamentos 2013
Fábio dos Reis
Alguns exemplos de Classes de
Caracteres
m[ae]u Retorna mau ou meu
[aeiou] Retorna vogais
m[ae][^aeiou] Retorna ma ou me seguido de
uma consoante (mas, mal, etc.)
Negação de classes de caracteres: ^
[^aeiou] Nenhum dos caracteres do
conjunto.
[^a-zA-Z] Tudo, exceto letras do alfabeto.
Bóson Treinamentos 2013
Fábio dos Reis
Metacaracteres dentro de
classes
Muitos metacaracteres dentro de conjuntos
de caracteres não precisam de escaping:
[abc.] Qualquer caractere do conjunto,
incluindo o ponto .
As exceções são as seguintes (necessitam
da barra ):
^ 
Ex.: Procurando pelas strings vetor(3) vetor
[5]
grep vetor[([][0-9][])]
Bóson Treinamentos 2013
Fábio dos Reis
Metacaracteres - Âncoras
Início de linha
Para representar uma expressão no início de
uma linha usamos o caracter ^
grep "^abc" arquivo #Retorna todas as linhas
que possuam strings que começam com abc
Fim de linha
Para representar uma expressão no final de
uma linha usamos o caracter $
grep "abc$" arquivo #Retorna todas as linhas
com strings que terminam com abc
Bóson Treinamentos 2013
Fábio dos Reis
Metacaracteres
Contar linhas vazias (^$)
grep -c "^$" arquivo #Conta as linhas vazias
no arquivo.
Bóson Treinamentos 2013
Fábio dos Reis
Repetição de caracteres
Metacaracter Significado
* Item precedente zero ou mais
vezes
+ Item precedente uma ou mais
vezes
? Item precedente zero ou uma vez
Bóson Treinamentos 2013
Fábio dos Reis
Repetição de caracteres - *
Zero ou mais ocorrências
Usamos o caracter * para especificar 0 ou mais
ocorrências do caracter anterior.
Exemplos:
grep "etc1*" #Retorna as strings que contém etc
seguidas ou não do número 1, ou 11, ou 111...
laranjas* #retorna laranja, laranjas ou
laranjass
Bóson Treinamentos 2013
Fábio dos Reis
Repetição de caracteres - +
Uma ou mais ocorrências
Usamos o caracter + para especificar 1 ou mais
ocorrências do caracter anterior.
grep "etc1+" #Retorna as strings que contém etc
seguidas do número 1, ou 11, ou 111...
colchetes+ #retorna apenas colchetes ou
colchetess; a palavra colchete não seria retornada,
pois não tem o "s" final.
"w+@" #retorna um ou mais caracteres seguidos
de um @; bom para encontrar endereços de email.
Bóson Treinamentos 2013
Fábio dos Reis
Repetição de caracteres - +
Achar linhas que começam com um ou mais
espaços:
"^[ ]+"
Bóson Treinamentos 2013
Fábio dos Reis
Repetição de caracteres - ?
Zero ou uma ocorrência
Usamos o caracter ? para especificar 0 ou 1
ocorrência do caracter anterior.
Exemplos:
grep "etc1?" #Retorna as strings que contém
etc seguida ou não do número 1.
laranjas? #retorna laranja ou laranjas, mas
não laranjass ou laranjasss, etc.
Bóson Treinamentos 2013
Fábio dos Reis
Repetição Quantificada
{x} Item anterior corresponde exatamente x
vezes
{x,} Corresponde ao menos x vezes
{min,max} Corresponde entre min e max
vezes
Exemplo:
grep -E r{2} #procura por strings com 'rr' -
necessário a opção -E ou usar egrep para
repetição quantificada.
Bóson Treinamentos 2013
Fábio dos Reis
Repetição quantificada -
exemplos
Achar números de telefone sem código de
área:
[0-9]{4}-[0-9]{4}
Achar números de CPF:
d{3}.d{3}.d{3}.-d{2} #não funcionou c/ grep
Achar sequências de 2 a 5 caracteres seguidas de um espaço:
w{2,5}s #funciona com grep -E
{0,} equivale a *
{1,} equivale a +
Bóson Treinamentos 2013
Fábio dos Reis
Agrupamento de caracteres
Metacaracteres ( e )
Permitem agrupar partes de uma
expressão;
Aplicar operadores de repetição a um grupo
Não podem ser usados dentro de conjuntos
de caracteres - tem significado literal lá.
Exemplos (usar egrep ou -E, e sem as aspas):
(in)?dependente # corresponde dependente e
independente
(abc)+ #abc ou abcabc ou abcabcabc, etc...
Bóson Treinamentos 2013
Fábio dos Reis
Alternação
Corresponder uma ou outra expressão: |
É como o operador OU
Expressão da esquerda tem preferência.
Exemplo:
egrep "dependente|independente" #acha
uma ou outra palavra.
egrep "cas(ado|ada)" #retorna casado ou
casada
Bóson Treinamentos 2013
Fábio dos Reis
Caracteres de escape
Para que possamos incluir caracteres
especiais nos padrões usamos caracteres de
escape.
grep "192.168.0.0" /etc/network/interfaces
Bóson Treinamentos 2013
Fábio dos Reis
Metacaracteres
< Início de uma palavra
> Fim de uma palavra
| Ou (alternação)
- Intervalo
( ) Limitar escopo da alternação
b Limite de palavras (bTextoExatob)
Bóson Treinamentos 2013
Fábio dos Reis
grep
Aplicativo que faz buscas no conteúdo de
arquivos por strings especificadas por uma
expressão regular (regex).
Global Regular Expression Print.
Sintaxe:
grep [opç] regex [arquivos] #ou
comando | grep [opç] regex #ou
comando | grep regex [opç] | grep regex2
Bóson Treinamentos 2013
Fábio dos Reis
Opções do grep
-c Exibe apenas uma contagem das linha encontradas.
-i Ignora o caso (maiúsculas e minúsculas)
-n Exibe as linhas encontradas com o respectivo número da
linha
-v Exibe todas as linhas que NÃO correspondam à regex.
-E Interpreta a regex como uma expressão regular estendida
(como egrep)
-r Busca recursiva
--color Mostra a saída colorida.
-A n Mostra a correspondência e as 3 linhas subsequentes
-B n Mostra a correspondência e as 3 linhas anteriores
-C n Mostra a correspondência e as 3 linhas subsequentes e
anteriores
Bóson Treinamentos 2013
Fábio dos Reis
Mais exemplos com linhas
grep ^[A-Z] #linhas começando letras maius.
grep ^[^A-Z] #linhas não começando com letra
maius.
grep ^[0-9] #linhas começando com núm. 0 a 9
^[[:alpha:]] #linhas que comecem com letras
^[[:upper:]] #linhas que comecem com letras
maiúsculas
[[:digit:]]$ #linhas que finalizam com números
Bóson Treinamentos 2013
Fábio dos Reis
Mais exemplos
grep "[fF]ábio" #encontra tanto as strings fábio quanto
Fábio.
grep "^[aeiou]" arquivo #Lista apenas as linhas
iniciadas com vogais no arquivo.
grep "^[^aeiou]" arquivo #Lista apenas as linhas
iniciadas com consoantes ou números no arquivo. (o ^
interno nega)
grep "[^aeiou]$" #lista apenas as linhas terminadas
com consoantes ou números.
Bóson Treinamentos 2013
Fábio dos Reis
Mais exemplos
grep -e 'e[a]' #Procura letra 'e' seguida de um 'a'
grep -e 'e[^a]' #Procura letra 'e' não seguida de
um 'a'
grep '[1-9]$' #Procura linhas com final entre 1 e 9
grep '[1-9]$' #procura linhas com um $ final ($)
egrep '150{3}' #Procura 15 seguido por 3 zeros.
Bóson Treinamentos 2013
Fábio dos Reis
Mais exemplos
'(azul|verde) escuro' #retorna azul escuro
ou verde escuro
'azul|verde escuro' #retorna azul ou verde
escuro
'(150){3}' #retorna 150150150 (3x)
'[:digit:]' #Qualquer dígito numérico
'[:digit:][:digit:][:digit:]' #Três números em
sequência
'[:digit:]{3}' #idem anterior (mais limpo)
Bóson Treinamentos 2013
Fábio dos Reis
Mais exemplos
'Mo{2}ca|Ipiranga' #Mooca ou Ipiranga
'(Mo){2}ca|Ipiranga' #Momoca ou Ipiranga
grep fabio /etc/passwd #procura a string fabio no arquivo
/etc/passwd
grep -r 'dhcp' /etc/ #procura a string dhcp em todos os arquivos do
diretório /etc
grep -w 'inet' /etc/network/interfaces #procura a palavra inet no
arquivo interfaces
egrep -w 'static|dhcp' /etc/networl/interfaces #procura as palavras
static e dhcp no arquivo interfaces
Bóson Treinamentos 2013
Fábio dos Reis
Mais exemplos
grep "texto" arq* #procura a string texto dentro de todos os arquivos
que começam com arq
grep -rw 'dhcp' /etc/ #procura a palavra dhcp em todos os arquivos
do diretório /etc
grep -A 3 -i "exemplo" arquivo #procura a palavra exemplo e retorna
também as 3 linhas subsequentes.
grep -B 3 -i "exemplo" arquivo #procura a palavra exemplo e retorna
também as 3 linhas anteriores.
grep -C 3 -i "exemplo" arquivo #procura a palavra exemplo e retorna
também as 3 linhas anteriores e as 3 linhas subsequentes.
Bóson Treinamentos 2013
Fábio dos Reis
Combinando greps e outros comandos
grep "^[^aeiou]" arquivo | grep "^[[:alpha:]]"
# traz apenas linhas iniciadas com
consoantes (sem números no início)
ls -l /dev | egrep '(s|h)d[a-z]' # mostra os
nomes dos dispositivos de HDs
find /home/fabio -name "M*" | grep "Mú"
Bóson Treinamentos 2013
Fábio dos Reis
Utilitário sed
Stream Editor, ou Editor de Streams
Programa de filtragem usado para
automatizar tarefas de edição repetitivas de
textos ou processamentos de pipes.
Sintaxe:
sed [opções] 'comando' [arquivo]
sed [opções] -f script [arquivos]
Bóson Treinamentos 2013
Fábio dos Reis
sed - opções
-e comando Essa opção especifica que o
argumento na sequência é um comando do
sed; opcional ao usar apenas um comando.
-f arquivo Arquivo é um script do sed
-g Trata todas as substituições como
globais.
-i Editar arquivos no próprio local
Bóson Treinamentos 2013
Fábio dos Reis
Comandos do sed
d Apaga linhas
s Faz substituições; tem sua sintaxe
própria:
s/padrão/substituição/flags
Flags usadas com o comando s:
g Substitui todas as instâncias de padrão
n Substitui a n-ésima instância de padrão
y Traduz caracteres.
Bóson Treinamentos 2013
Fábio dos Reis
Exemplos do sed
Apagar as linhas de 2 a 6 do arquivo:
sed -i '2,6d' arquivo
Apagar as linhas comentadas no arquivo:
sed -i '/^#/d' arquivo #aplicou regex
Traduzir caracteres:
sed -i y/ac/fg/ #a vira f e c vira g
Bóson Treinamentos 2013
Fábio dos Reis
Exemplos do sed
Escrever % em todas as linhas vazias
sed -i 's/^$/%/' arquivo
Apagar linhas em branco:
-i /^$/d
Trocar todas as ocorrências de fabio por
ana:
-i s/fabio/ana/g
Bóson Treinamentos 2013
Fábio dos Reis

Weitere ähnliche Inhalte

Was ist angesagt?

Inteligência Artificial - Aula2 - Busca em Grafos
Inteligência Artificial - Aula2 - Busca em GrafosInteligência Artificial - Aula2 - Busca em Grafos
Inteligência Artificial - Aula2 - Busca em GrafosRafael Pinto
 
Algoritmos - Aula 02 - Construcao de algoritmos
Algoritmos - Aula 02 - Construcao de algoritmosAlgoritmos - Aula 02 - Construcao de algoritmos
Algoritmos - Aula 02 - Construcao de algoritmosRodrigo Kiyoshi Saito
 
Projetos de algoritmos com implementações em pascal e c (nivio ziviani, 4ed)
Projetos de algoritmos com implementações em pascal e c (nivio ziviani, 4ed)Projetos de algoritmos com implementações em pascal e c (nivio ziviani, 4ed)
Projetos de algoritmos com implementações em pascal e c (nivio ziviani, 4ed)CriatividadeZeroDocs
 
Linguagem de Programação Python
Linguagem de Programação PythonLinguagem de Programação Python
Linguagem de Programação PythonJunior Sobrenome
 
Modelo Relacional, Rede e Hierárquico
Modelo Relacional, Rede e HierárquicoModelo Relacional, Rede e Hierárquico
Modelo Relacional, Rede e Hierárquicorosimaracorsino
 
Aulas 11-guloso Algoritmos
Aulas 11-guloso AlgoritmosAulas 11-guloso Algoritmos
Aulas 11-guloso AlgoritmosKevin Takano
 
Circuitos Digitais: Paridade parte 1
Circuitos Digitais: Paridade parte 1Circuitos Digitais: Paridade parte 1
Circuitos Digitais: Paridade parte 1Elaine Cecília Gatto
 
1.7. eqivalence of nfa and dfa
1.7. eqivalence of nfa and dfa1.7. eqivalence of nfa and dfa
1.7. eqivalence of nfa and dfaSampath Kumar S
 
Medidas de Informática
Medidas de InformáticaMedidas de Informática
Medidas de InformáticaPatty Santana
 
Multiplicação e divisão de inteiros
Multiplicação e divisão de inteirosMultiplicação e divisão de inteiros
Multiplicação e divisão de inteirosProfessora Andréia
 
Exercícios - Herança - Java
Exercícios - Herança - JavaExercícios - Herança - Java
Exercícios - Herança - JavaArthur Emanuel
 
Estrutura de Dados Aula 04 - Listas Estáticas
Estrutura de Dados Aula 04 - Listas EstáticasEstrutura de Dados Aula 04 - Listas Estáticas
Estrutura de Dados Aula 04 - Listas EstáticasLeinylson Fontinele
 
Cluster e replicação em banco de dados
Cluster e replicação em banco de dadosCluster e replicação em banco de dados
Cluster e replicação em banco de dadosSuissa
 
Questões média mediana e moda
Questões média mediana e modaQuestões média mediana e moda
Questões média mediana e modaKeyla Christianne
 
Aula 4 - Teste de mesa
Aula 4 - Teste de mesaAula 4 - Teste de mesa
Aula 4 - Teste de mesaPacc UAB
 
Introdução a JPA (2010)
Introdução a JPA (2010)Introdução a JPA (2010)
Introdução a JPA (2010)Helder da Rocha
 

Was ist angesagt? (20)

Inteligência Artificial - Aula2 - Busca em Grafos
Inteligência Artificial - Aula2 - Busca em GrafosInteligência Artificial - Aula2 - Busca em Grafos
Inteligência Artificial - Aula2 - Busca em Grafos
 
Algoritmos - Aula 02 - Construcao de algoritmos
Algoritmos - Aula 02 - Construcao de algoritmosAlgoritmos - Aula 02 - Construcao de algoritmos
Algoritmos - Aula 02 - Construcao de algoritmos
 
Projetos de algoritmos com implementações em pascal e c (nivio ziviani, 4ed)
Projetos de algoritmos com implementações em pascal e c (nivio ziviani, 4ed)Projetos de algoritmos com implementações em pascal e c (nivio ziviani, 4ed)
Projetos de algoritmos com implementações em pascal e c (nivio ziviani, 4ed)
 
Árvore Binária
Árvore BináriaÁrvore Binária
Árvore Binária
 
Lista de exercícios em Bash (resolvida)
Lista de exercícios em Bash (resolvida) Lista de exercícios em Bash (resolvida)
Lista de exercícios em Bash (resolvida)
 
Linguagem de Programação Python
Linguagem de Programação PythonLinguagem de Programação Python
Linguagem de Programação Python
 
Modelo Relacional, Rede e Hierárquico
Modelo Relacional, Rede e HierárquicoModelo Relacional, Rede e Hierárquico
Modelo Relacional, Rede e Hierárquico
 
Aulas 11-guloso Algoritmos
Aulas 11-guloso AlgoritmosAulas 11-guloso Algoritmos
Aulas 11-guloso Algoritmos
 
Circuitos Digitais: Paridade parte 1
Circuitos Digitais: Paridade parte 1Circuitos Digitais: Paridade parte 1
Circuitos Digitais: Paridade parte 1
 
Pilha e filas
Pilha e filasPilha e filas
Pilha e filas
 
1.7. eqivalence of nfa and dfa
1.7. eqivalence of nfa and dfa1.7. eqivalence of nfa and dfa
1.7. eqivalence of nfa and dfa
 
Medidas de Informática
Medidas de InformáticaMedidas de Informática
Medidas de Informática
 
Multiplicação e divisão de inteiros
Multiplicação e divisão de inteirosMultiplicação e divisão de inteiros
Multiplicação e divisão de inteiros
 
Exercícios - Herança - Java
Exercícios - Herança - JavaExercícios - Herança - Java
Exercícios - Herança - Java
 
Estrutura de Dados Aula 04 - Listas Estáticas
Estrutura de Dados Aula 04 - Listas EstáticasEstrutura de Dados Aula 04 - Listas Estáticas
Estrutura de Dados Aula 04 - Listas Estáticas
 
Cluster e replicação em banco de dados
Cluster e replicação em banco de dadosCluster e replicação em banco de dados
Cluster e replicação em banco de dados
 
Funções
FunçõesFunções
Funções
 
Questões média mediana e moda
Questões média mediana e modaQuestões média mediana e moda
Questões média mediana e moda
 
Aula 4 - Teste de mesa
Aula 4 - Teste de mesaAula 4 - Teste de mesa
Aula 4 - Teste de mesa
 
Introdução a JPA (2010)
Introdução a JPA (2010)Introdução a JPA (2010)
Introdução a JPA (2010)
 

Andere mochten auch

Expressões regulares no Linux
Expressões regulares no LinuxExpressões regulares no Linux
Expressões regulares no LinuxÍcaro Medeiros
 
Hadoop World 2011: Advanced HBase Schema Design - Lars George, Cloudera
Hadoop World 2011: Advanced HBase Schema Design - Lars George, ClouderaHadoop World 2011: Advanced HBase Schema Design - Lars George, Cloudera
Hadoop World 2011: Advanced HBase Schema Design - Lars George, ClouderaCloudera, Inc.
 
Estudos genéticos em doenças Mendelianas e complexas
Estudos genéticos em doenças Mendelianas e complexasEstudos genéticos em doenças Mendelianas e complexas
Estudos genéticos em doenças Mendelianas e complexasLeandro Lima
 
Histologia do Esmalte, Dentina, Polpa e Cemento
Histologia do Esmalte, Dentina, Polpa e CementoHistologia do Esmalte, Dentina, Polpa e Cemento
Histologia do Esmalte, Dentina, Polpa e CementoRaphael Machado
 

Andere mochten auch (6)

Expressões regulares no Linux
Expressões regulares no LinuxExpressões regulares no Linux
Expressões regulares no Linux
 
Hadoop World 2011: Advanced HBase Schema Design - Lars George, Cloudera
Hadoop World 2011: Advanced HBase Schema Design - Lars George, ClouderaHadoop World 2011: Advanced HBase Schema Design - Lars George, Cloudera
Hadoop World 2011: Advanced HBase Schema Design - Lars George, Cloudera
 
Linux comando ls
Linux comando lsLinux comando ls
Linux comando ls
 
Estudos genéticos em doenças Mendelianas e complexas
Estudos genéticos em doenças Mendelianas e complexasEstudos genéticos em doenças Mendelianas e complexas
Estudos genéticos em doenças Mendelianas e complexas
 
Odontogênese
OdontogêneseOdontogênese
Odontogênese
 
Histologia do Esmalte, Dentina, Polpa e Cemento
Histologia do Esmalte, Dentina, Polpa e CementoHistologia do Esmalte, Dentina, Polpa e Cemento
Histologia do Esmalte, Dentina, Polpa e Cemento
 

Ähnlich wie Expressões regulares, grep e sed - Bóson Treinamentos

Ähnlich wie Expressões regulares, grep e sed - Bóson Treinamentos (20)

Regex
RegexRegex
Regex
 
Expressões regulares
Expressões regularesExpressões regulares
Expressões regulares
 
Minicurso de Expressões Regulares (REGEX)
Minicurso de Expressões Regulares (REGEX)Minicurso de Expressões Regulares (REGEX)
Minicurso de Expressões Regulares (REGEX)
 
Curso De Shell Aula 5
Curso De Shell   Aula 5Curso De Shell   Aula 5
Curso De Shell Aula 5
 
Curso De Shell Aula 6
Curso De Shell   Aula 6Curso De Shell   Aula 6
Curso De Shell Aula 6
 
Lcl Aula3
Lcl Aula3Lcl Aula3
Lcl Aula3
 
Regex
RegexRegex
Regex
 
Minicurso de Expressões Regulares
Minicurso de Expressões RegularesMinicurso de Expressões Regulares
Minicurso de Expressões Regulares
 
Expressões Regulares - Parte II
Expressões Regulares - Parte IIExpressões Regulares - Parte II
Expressões Regulares - Parte II
 
04 - C# laços de repetição, vetores e matrizes v1.0
04 - C# laços de repetição, vetores e matrizes v1.004 - C# laços de repetição, vetores e matrizes v1.0
04 - C# laços de repetição, vetores e matrizes v1.0
 
Comandos básicos Linux.docx
Comandos básicos Linux.docxComandos básicos Linux.docx
Comandos básicos Linux.docx
 
Visual g comandos
Visual g comandosVisual g comandos
Visual g comandos
 
Fpar aula5
Fpar aula5Fpar aula5
Fpar aula5
 
Expressões Regulares (Bio Labs #5)
Expressões Regulares (Bio Labs #5)Expressões Regulares (Bio Labs #5)
Expressões Regulares (Bio Labs #5)
 
PHP - Strings
PHP - StringsPHP - Strings
PHP - Strings
 
Biblioteca strings profª ms
Biblioteca strings profª msBiblioteca strings profª ms
Biblioteca strings profª ms
 
Python 02
Python 02Python 02
Python 02
 
Algoritmos 1 - Semana 2
Algoritmos 1 - Semana 2Algoritmos 1 - Semana 2
Algoritmos 1 - Semana 2
 
Canivete shell
Canivete shellCanivete shell
Canivete shell
 
Canivete shell
Canivete shellCanivete shell
Canivete shell
 

Mehr von Fábio dos Reis

Palestra de Windows Server 2016
Palestra de Windows Server 2016Palestra de Windows Server 2016
Palestra de Windows Server 2016Fábio dos Reis
 
Palestra Introdução ao Microsoft Azure - Senac Lapa
Palestra Introdução ao Microsoft Azure - Senac LapaPalestra Introdução ao Microsoft Azure - Senac Lapa
Palestra Introdução ao Microsoft Azure - Senac LapaFábio dos Reis
 
Introdução ao Registro do Windows
Introdução ao Registro do WindowsIntrodução ao Registro do Windows
Introdução ao Registro do WindowsFábio dos Reis
 
Sistema Hexadecimal de numeração
Sistema Hexadecimal de numeraçãoSistema Hexadecimal de numeração
Sistema Hexadecimal de numeraçãoFábio dos Reis
 
Conheça o Roseapple Pi - Computador de Placa ùnica
Conheça o Roseapple Pi - Computador de Placa ùnicaConheça o Roseapple Pi - Computador de Placa ùnica
Conheça o Roseapple Pi - Computador de Placa ùnicaFábio dos Reis
 
Conhecendo as funções analogread, analogwrite e analogreference
Conhecendo as funções analogread, analogwrite e analogreferenceConhecendo as funções analogread, analogwrite e analogreference
Conhecendo as funções analogread, analogwrite e analogreferenceFábio dos Reis
 
Protocolo DHCP - Noções básicas - Bóson Treinamentos
Protocolo DHCP - Noções básicas - Bóson TreinamentosProtocolo DHCP - Noções básicas - Bóson Treinamentos
Protocolo DHCP - Noções básicas - Bóson TreinamentosFábio dos Reis
 
Introdução à criptografia - Bóson Treinamentos
Introdução à criptografia - Bóson TreinamentosIntrodução à criptografia - Bóson Treinamentos
Introdução à criptografia - Bóson TreinamentosFábio dos Reis
 
Rpm e yum - gerenciamento de pacotes
Rpm e yum - gerenciamento de pacotesRpm e yum - gerenciamento de pacotes
Rpm e yum - gerenciamento de pacotesFábio dos Reis
 
Prioridades de processos - nice e renice
Prioridades de processos - nice e renicePrioridades de processos - nice e renice
Prioridades de processos - nice e reniceFábio dos Reis
 
Processos e comando kill - Bóson Treinamentos
Processos e comando kill - Bóson TreinamentosProcessos e comando kill - Bóson Treinamentos
Processos e comando kill - Bóson TreinamentosFábio dos Reis
 
Discos e sistemas de arquivos em Linux
Discos e sistemas de arquivos em LinuxDiscos e sistemas de arquivos em Linux
Discos e sistemas de arquivos em LinuxFábio dos Reis
 
Bg, fg, jobs, nohup - controle de tarefas do shell
Bg, fg, jobs, nohup - controle de tarefas do shellBg, fg, jobs, nohup - controle de tarefas do shell
Bg, fg, jobs, nohup - controle de tarefas do shellFábio dos Reis
 
Sql com sql server básico - Bóson treinamentos
Sql com sql server básico - Bóson treinamentosSql com sql server básico - Bóson treinamentos
Sql com sql server básico - Bóson treinamentosFábio dos Reis
 
Permissões especiais - suid, sgid, sticky - Linux
Permissões especiais - suid, sgid, sticky - LinuxPermissões especiais - suid, sgid, sticky - Linux
Permissões especiais - suid, sgid, sticky - LinuxFábio dos Reis
 
Umask - Linux - Bóson Treinamentos
Umask - Linux - Bóson TreinamentosUmask - Linux - Bóson Treinamentos
Umask - Linux - Bóson TreinamentosFábio dos Reis
 
Servidor DHCP - Linux - Bóson Treinamentos
Servidor DHCP - Linux - Bóson TreinamentosServidor DHCP - Linux - Bóson Treinamentos
Servidor DHCP - Linux - Bóson TreinamentosFábio dos Reis
 
Instalação do linux debian 6.0.4
Instalação do linux debian 6.0.4Instalação do linux debian 6.0.4
Instalação do linux debian 6.0.4Fábio dos Reis
 
Redirecionamento, pipes e processos linux
Redirecionamento, pipes e processos   linuxRedirecionamento, pipes e processos   linux
Redirecionamento, pipes e processos linuxFábio dos Reis
 

Mehr von Fábio dos Reis (20)

Palestra de Windows Server 2016
Palestra de Windows Server 2016Palestra de Windows Server 2016
Palestra de Windows Server 2016
 
Palestra Introdução ao Microsoft Azure - Senac Lapa
Palestra Introdução ao Microsoft Azure - Senac LapaPalestra Introdução ao Microsoft Azure - Senac Lapa
Palestra Introdução ao Microsoft Azure - Senac Lapa
 
Introdução ao Registro do Windows
Introdução ao Registro do WindowsIntrodução ao Registro do Windows
Introdução ao Registro do Windows
 
Sistema Hexadecimal de numeração
Sistema Hexadecimal de numeraçãoSistema Hexadecimal de numeração
Sistema Hexadecimal de numeração
 
Conheça o Roseapple Pi - Computador de Placa ùnica
Conheça o Roseapple Pi - Computador de Placa ùnicaConheça o Roseapple Pi - Computador de Placa ùnica
Conheça o Roseapple Pi - Computador de Placa ùnica
 
Conhecendo as funções analogread, analogwrite e analogreference
Conhecendo as funções analogread, analogwrite e analogreferenceConhecendo as funções analogread, analogwrite e analogreference
Conhecendo as funções analogread, analogwrite e analogreference
 
A Catedral e o Bazar
A Catedral e o BazarA Catedral e o Bazar
A Catedral e o Bazar
 
Protocolo DHCP - Noções básicas - Bóson Treinamentos
Protocolo DHCP - Noções básicas - Bóson TreinamentosProtocolo DHCP - Noções básicas - Bóson Treinamentos
Protocolo DHCP - Noções básicas - Bóson Treinamentos
 
Introdução à criptografia - Bóson Treinamentos
Introdução à criptografia - Bóson TreinamentosIntrodução à criptografia - Bóson Treinamentos
Introdução à criptografia - Bóson Treinamentos
 
Rpm e yum - gerenciamento de pacotes
Rpm e yum - gerenciamento de pacotesRpm e yum - gerenciamento de pacotes
Rpm e yum - gerenciamento de pacotes
 
Prioridades de processos - nice e renice
Prioridades de processos - nice e renicePrioridades de processos - nice e renice
Prioridades de processos - nice e renice
 
Processos e comando kill - Bóson Treinamentos
Processos e comando kill - Bóson TreinamentosProcessos e comando kill - Bóson Treinamentos
Processos e comando kill - Bóson Treinamentos
 
Discos e sistemas de arquivos em Linux
Discos e sistemas de arquivos em LinuxDiscos e sistemas de arquivos em Linux
Discos e sistemas de arquivos em Linux
 
Bg, fg, jobs, nohup - controle de tarefas do shell
Bg, fg, jobs, nohup - controle de tarefas do shellBg, fg, jobs, nohup - controle de tarefas do shell
Bg, fg, jobs, nohup - controle de tarefas do shell
 
Sql com sql server básico - Bóson treinamentos
Sql com sql server básico - Bóson treinamentosSql com sql server básico - Bóson treinamentos
Sql com sql server básico - Bóson treinamentos
 
Permissões especiais - suid, sgid, sticky - Linux
Permissões especiais - suid, sgid, sticky - LinuxPermissões especiais - suid, sgid, sticky - Linux
Permissões especiais - suid, sgid, sticky - Linux
 
Umask - Linux - Bóson Treinamentos
Umask - Linux - Bóson TreinamentosUmask - Linux - Bóson Treinamentos
Umask - Linux - Bóson Treinamentos
 
Servidor DHCP - Linux - Bóson Treinamentos
Servidor DHCP - Linux - Bóson TreinamentosServidor DHCP - Linux - Bóson Treinamentos
Servidor DHCP - Linux - Bóson Treinamentos
 
Instalação do linux debian 6.0.4
Instalação do linux debian 6.0.4Instalação do linux debian 6.0.4
Instalação do linux debian 6.0.4
 
Redirecionamento, pipes e processos linux
Redirecionamento, pipes e processos   linuxRedirecionamento, pipes e processos   linux
Redirecionamento, pipes e processos linux
 

Kürzlich hochgeladen

Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx2m Assessoria
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuisKitota
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfSamaraLunas
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 

Kürzlich hochgeladen (8)

Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 

Expressões regulares, grep e sed - Bóson Treinamentos

  • 2. Expressões Regulares Expressões Regulares são conjuntos de caracteres usados para procurar e manipular textos em arquivos, pastas, etc, baseados em padrões. Podem ser usadas com inúmeros comandos do Linux e em linguagens de programação. Bóson Treinamentos 2013 Fábio dos Reis
  • 3. Metacaracteres Caracteres que possuem significado especial. Transformam caracteres literais em expressões poderosas. São os seguintes: . * + - { } [ ] ^ $ | ? ( ) : ! = Os metacaracteres podem ter mais de um significado, dependendo do contexto de uso. Obs. Aspas NÃO são metacaracteres, Bóson Treinamentos 2013 Fábio dos Reis
  • 4. Metacaracteres Caracter único Representamos qualquer caracter único com um ponto . grep ".orte" arquivo #Retorna as linhas que contém a string orte, independente da primeira letra. grep -i "f.b" /etc/passwd Bóson Treinamentos 2013 Fábio dos Reis
  • 5. Metacaracteres - escape E se quiséssemos usar o ponto . como caractere literal, e não metacaractere? Então usaremos outro metacaractere para indicar o "escape" do ponto: a barra A barra dará ao caractere na sequência um significado alternativo - em vez de metacaractere, será tratado como caractere literal normal. Ex.: Imagine um texto contendo as strings 2.000, 2,000 e 2-000. Teste as regex a seguir e veja a diferença: grep 2.00 string Bóson Treinamentos 2013 Fábio dos Reis
  • 6. Conjuntos ou Classes de Caracteres - São listas de caracteres escritas dentro de colchetes [ ] e que são usadas para corresponder apenas um dos caracteres listados. - Permite selecionar um dos caracteres dentro dos colchetes, não importando a ordem. Bóson Treinamentos 2013 Fábio dos Reis
  • 7. Classes de Caracteres mais usadas [0-3] Faixa que equivale a [0123] [a-k] equivale a [abcdefghijk] [A-C] equivale a [ABC] [A-Ca-k] equivale a [ABCabcdefghijk] Expressões POSIX: [[:alpha:]] equivale a [a-zA-Z] [^[:alpha:]] Negação de caracteres alfabéticos [[:upper:]] equivale a [A-Z] [[:lower:]] equivale a [a-z] [[:digit:]] equivale a [0-9] [[:alnum:]] equivale a [0-9a-zA-Z] [[:space:]] qualquer espaço e branco, incluindo tabulações Bóson Treinamentos 2013 Fábio dos Reis
  • 8. Alguns exemplos de Classes de Caracteres m[ae]u Retorna mau ou meu [aeiou] Retorna vogais m[ae][^aeiou] Retorna ma ou me seguido de uma consoante (mas, mal, etc.) Negação de classes de caracteres: ^ [^aeiou] Nenhum dos caracteres do conjunto. [^a-zA-Z] Tudo, exceto letras do alfabeto. Bóson Treinamentos 2013 Fábio dos Reis
  • 9. Metacaracteres dentro de classes Muitos metacaracteres dentro de conjuntos de caracteres não precisam de escaping: [abc.] Qualquer caractere do conjunto, incluindo o ponto . As exceções são as seguintes (necessitam da barra ): ^ Ex.: Procurando pelas strings vetor(3) vetor [5] grep vetor[([][0-9][])] Bóson Treinamentos 2013 Fábio dos Reis
  • 10. Metacaracteres - Âncoras Início de linha Para representar uma expressão no início de uma linha usamos o caracter ^ grep "^abc" arquivo #Retorna todas as linhas que possuam strings que começam com abc Fim de linha Para representar uma expressão no final de uma linha usamos o caracter $ grep "abc$" arquivo #Retorna todas as linhas com strings que terminam com abc Bóson Treinamentos 2013 Fábio dos Reis
  • 11. Metacaracteres Contar linhas vazias (^$) grep -c "^$" arquivo #Conta as linhas vazias no arquivo. Bóson Treinamentos 2013 Fábio dos Reis
  • 12. Repetição de caracteres Metacaracter Significado * Item precedente zero ou mais vezes + Item precedente uma ou mais vezes ? Item precedente zero ou uma vez Bóson Treinamentos 2013 Fábio dos Reis
  • 13. Repetição de caracteres - * Zero ou mais ocorrências Usamos o caracter * para especificar 0 ou mais ocorrências do caracter anterior. Exemplos: grep "etc1*" #Retorna as strings que contém etc seguidas ou não do número 1, ou 11, ou 111... laranjas* #retorna laranja, laranjas ou laranjass Bóson Treinamentos 2013 Fábio dos Reis
  • 14. Repetição de caracteres - + Uma ou mais ocorrências Usamos o caracter + para especificar 1 ou mais ocorrências do caracter anterior. grep "etc1+" #Retorna as strings que contém etc seguidas do número 1, ou 11, ou 111... colchetes+ #retorna apenas colchetes ou colchetess; a palavra colchete não seria retornada, pois não tem o "s" final. "w+@" #retorna um ou mais caracteres seguidos de um @; bom para encontrar endereços de email. Bóson Treinamentos 2013 Fábio dos Reis
  • 15. Repetição de caracteres - + Achar linhas que começam com um ou mais espaços: "^[ ]+" Bóson Treinamentos 2013 Fábio dos Reis
  • 16. Repetição de caracteres - ? Zero ou uma ocorrência Usamos o caracter ? para especificar 0 ou 1 ocorrência do caracter anterior. Exemplos: grep "etc1?" #Retorna as strings que contém etc seguida ou não do número 1. laranjas? #retorna laranja ou laranjas, mas não laranjass ou laranjasss, etc. Bóson Treinamentos 2013 Fábio dos Reis
  • 17. Repetição Quantificada {x} Item anterior corresponde exatamente x vezes {x,} Corresponde ao menos x vezes {min,max} Corresponde entre min e max vezes Exemplo: grep -E r{2} #procura por strings com 'rr' - necessário a opção -E ou usar egrep para repetição quantificada. Bóson Treinamentos 2013 Fábio dos Reis
  • 18. Repetição quantificada - exemplos Achar números de telefone sem código de área: [0-9]{4}-[0-9]{4} Achar números de CPF: d{3}.d{3}.d{3}.-d{2} #não funcionou c/ grep Achar sequências de 2 a 5 caracteres seguidas de um espaço: w{2,5}s #funciona com grep -E {0,} equivale a * {1,} equivale a + Bóson Treinamentos 2013 Fábio dos Reis
  • 19. Agrupamento de caracteres Metacaracteres ( e ) Permitem agrupar partes de uma expressão; Aplicar operadores de repetição a um grupo Não podem ser usados dentro de conjuntos de caracteres - tem significado literal lá. Exemplos (usar egrep ou -E, e sem as aspas): (in)?dependente # corresponde dependente e independente (abc)+ #abc ou abcabc ou abcabcabc, etc... Bóson Treinamentos 2013 Fábio dos Reis
  • 20. Alternação Corresponder uma ou outra expressão: | É como o operador OU Expressão da esquerda tem preferência. Exemplo: egrep "dependente|independente" #acha uma ou outra palavra. egrep "cas(ado|ada)" #retorna casado ou casada Bóson Treinamentos 2013 Fábio dos Reis
  • 21. Caracteres de escape Para que possamos incluir caracteres especiais nos padrões usamos caracteres de escape. grep "192.168.0.0" /etc/network/interfaces Bóson Treinamentos 2013 Fábio dos Reis
  • 22. Metacaracteres < Início de uma palavra > Fim de uma palavra | Ou (alternação) - Intervalo ( ) Limitar escopo da alternação b Limite de palavras (bTextoExatob) Bóson Treinamentos 2013 Fábio dos Reis
  • 23. grep Aplicativo que faz buscas no conteúdo de arquivos por strings especificadas por uma expressão regular (regex). Global Regular Expression Print. Sintaxe: grep [opç] regex [arquivos] #ou comando | grep [opç] regex #ou comando | grep regex [opç] | grep regex2 Bóson Treinamentos 2013 Fábio dos Reis
  • 24. Opções do grep -c Exibe apenas uma contagem das linha encontradas. -i Ignora o caso (maiúsculas e minúsculas) -n Exibe as linhas encontradas com o respectivo número da linha -v Exibe todas as linhas que NÃO correspondam à regex. -E Interpreta a regex como uma expressão regular estendida (como egrep) -r Busca recursiva --color Mostra a saída colorida. -A n Mostra a correspondência e as 3 linhas subsequentes -B n Mostra a correspondência e as 3 linhas anteriores -C n Mostra a correspondência e as 3 linhas subsequentes e anteriores Bóson Treinamentos 2013 Fábio dos Reis
  • 25. Mais exemplos com linhas grep ^[A-Z] #linhas começando letras maius. grep ^[^A-Z] #linhas não começando com letra maius. grep ^[0-9] #linhas começando com núm. 0 a 9 ^[[:alpha:]] #linhas que comecem com letras ^[[:upper:]] #linhas que comecem com letras maiúsculas [[:digit:]]$ #linhas que finalizam com números Bóson Treinamentos 2013 Fábio dos Reis
  • 26. Mais exemplos grep "[fF]ábio" #encontra tanto as strings fábio quanto Fábio. grep "^[aeiou]" arquivo #Lista apenas as linhas iniciadas com vogais no arquivo. grep "^[^aeiou]" arquivo #Lista apenas as linhas iniciadas com consoantes ou números no arquivo. (o ^ interno nega) grep "[^aeiou]$" #lista apenas as linhas terminadas com consoantes ou números. Bóson Treinamentos 2013 Fábio dos Reis
  • 27. Mais exemplos grep -e 'e[a]' #Procura letra 'e' seguida de um 'a' grep -e 'e[^a]' #Procura letra 'e' não seguida de um 'a' grep '[1-9]$' #Procura linhas com final entre 1 e 9 grep '[1-9]$' #procura linhas com um $ final ($) egrep '150{3}' #Procura 15 seguido por 3 zeros. Bóson Treinamentos 2013 Fábio dos Reis
  • 28. Mais exemplos '(azul|verde) escuro' #retorna azul escuro ou verde escuro 'azul|verde escuro' #retorna azul ou verde escuro '(150){3}' #retorna 150150150 (3x) '[:digit:]' #Qualquer dígito numérico '[:digit:][:digit:][:digit:]' #Três números em sequência '[:digit:]{3}' #idem anterior (mais limpo) Bóson Treinamentos 2013 Fábio dos Reis
  • 29. Mais exemplos 'Mo{2}ca|Ipiranga' #Mooca ou Ipiranga '(Mo){2}ca|Ipiranga' #Momoca ou Ipiranga grep fabio /etc/passwd #procura a string fabio no arquivo /etc/passwd grep -r 'dhcp' /etc/ #procura a string dhcp em todos os arquivos do diretório /etc grep -w 'inet' /etc/network/interfaces #procura a palavra inet no arquivo interfaces egrep -w 'static|dhcp' /etc/networl/interfaces #procura as palavras static e dhcp no arquivo interfaces Bóson Treinamentos 2013 Fábio dos Reis
  • 30. Mais exemplos grep "texto" arq* #procura a string texto dentro de todos os arquivos que começam com arq grep -rw 'dhcp' /etc/ #procura a palavra dhcp em todos os arquivos do diretório /etc grep -A 3 -i "exemplo" arquivo #procura a palavra exemplo e retorna também as 3 linhas subsequentes. grep -B 3 -i "exemplo" arquivo #procura a palavra exemplo e retorna também as 3 linhas anteriores. grep -C 3 -i "exemplo" arquivo #procura a palavra exemplo e retorna também as 3 linhas anteriores e as 3 linhas subsequentes. Bóson Treinamentos 2013 Fábio dos Reis
  • 31. Combinando greps e outros comandos grep "^[^aeiou]" arquivo | grep "^[[:alpha:]]" # traz apenas linhas iniciadas com consoantes (sem números no início) ls -l /dev | egrep '(s|h)d[a-z]' # mostra os nomes dos dispositivos de HDs find /home/fabio -name "M*" | grep "Mú" Bóson Treinamentos 2013 Fábio dos Reis
  • 32. Utilitário sed Stream Editor, ou Editor de Streams Programa de filtragem usado para automatizar tarefas de edição repetitivas de textos ou processamentos de pipes. Sintaxe: sed [opções] 'comando' [arquivo] sed [opções] -f script [arquivos] Bóson Treinamentos 2013 Fábio dos Reis
  • 33. sed - opções -e comando Essa opção especifica que o argumento na sequência é um comando do sed; opcional ao usar apenas um comando. -f arquivo Arquivo é um script do sed -g Trata todas as substituições como globais. -i Editar arquivos no próprio local Bóson Treinamentos 2013 Fábio dos Reis
  • 34. Comandos do sed d Apaga linhas s Faz substituições; tem sua sintaxe própria: s/padrão/substituição/flags Flags usadas com o comando s: g Substitui todas as instâncias de padrão n Substitui a n-ésima instância de padrão y Traduz caracteres. Bóson Treinamentos 2013 Fábio dos Reis
  • 35. Exemplos do sed Apagar as linhas de 2 a 6 do arquivo: sed -i '2,6d' arquivo Apagar as linhas comentadas no arquivo: sed -i '/^#/d' arquivo #aplicou regex Traduzir caracteres: sed -i y/ac/fg/ #a vira f e c vira g Bóson Treinamentos 2013 Fábio dos Reis
  • 36. Exemplos do sed Escrever % em todas as linhas vazias sed -i 's/^$/%/' arquivo Apagar linhas em branco: -i /^$/d Trocar todas as ocorrências de fabio por ana: -i s/fabio/ana/g Bóson Treinamentos 2013 Fábio dos Reis