SlideShare uma empresa Scribd logo
1 de 46
Baixar para ler offline
SED - Stream Editor
Almir 'm3nd3s'
@m3nd3s
m3nd3s@gmail.com
http://www.almirmendes.com/
                              http://www.flickr.com/photos/gnackgnackgnack/4367460746/
Não interativo
Quando
  usar?




 Quando
NÃO usar?
            http://www.flickr.com/photos/dcassaa/397696572/
Como
         funciona
o sed?
http://www.flickr.com/photos/bigandsharp/342738650/
                                                      Filtro
Orientado a linha
STDIN
    ou
     arquivo
cat texto.txt | sed 5p

  sed 5p texto.txt

 sed 5p < texto.txt
O que era
aquele '5p' ?




                http://www.flickr.com/photos/st3f4n/3556697439/
Endereços
    http://www.flickr.com/photos/thewhitestdogalive/519505660/
Uso intensivo
    de ReGex




http://www.flickr.com/photos/rgarciasuarez74/2043759104/
sed [options] rules [fle]


[address1, [address2]] command [params]
cat texto.txt | sed p
Número da linha




www.flickr.com/photos/spilt-milk/164145237/
                                              Padrão
sed '5d' texto.txt
sed '/giran/d' texto.txt
sed '7d;15d;/feira/d' texto.txt
Intervalos
sed '5,10d' texto.txt
sed '5,$d' texto.txt
sed '/siege/,+5d' texto.txt
sed '/um/,/sete/ s/^/*/' texto.txt
E quando temos “/”
    no padrão?
sed ',/views/header.htm,d' texto.txt
Vários comandos,
mesmo endereço
sed '/um/,/sete/{ /um/ b; /sete/ b;
s/^/*/; }' texto.txt
sed '1,/giran/{ /giran/ s/^/*/; }' texto.txt
Salvando Alterações
sed 's/hum/um/' texto.txt > texto.txt


        ERRADO!
sed '1,+5d' texto.txt > texto-alt.txt
mv texto-alt.txt texto.txt


           Solução 1
cp -a texto.txt texto.tmp.txt

sed '1,+5d' texto.tmp.txt > texto.txt

rm texto.tmp.txt


           Solução 2
sed -i orig '1,+5d' texto.txt

         Perfect!!!

       texto.txt.orig
Comandos de
  edição
sed 's/h1/h3/Ig' texto.txt
sed '/^$/c #' texto.txt
sed '/prompt/i #' texto.txt
sed '/prompt/a #' texto.txt
sed 'y/abc/ABC/' texto.txt
sed 's/;/n/g' texto.txt
sed 's/casa/CASA/I' texto.txt
sed 's/(read) ([[:alpha:]]+)/
1(2)/' texto.txt
sed '/<body>/r texto.txt'
       arquivo.html
sed '/<h1>/c <h3>Novo</h3>' arquivo.html
sed '/$/{p; p ;p;}' texto.txt
Podemos salvar os
comandos em um arquivo
       também!
# Meu programa em Sed

# troca os h1 por h3
s/h1/h3/

# apaga a última linha
$d
Registradores


Padrão     Reserva

     gGhHx
Outros comandos

  : → Marca uma posição
b → Pula para uma marcação
  ! → Inverte um comando
Referências
http://www.grymoire.com/Unix/Sed.html
http://aurelio.net/sed/sed-HOWTO/
http://aurelio.net/sed/livro/
Manpage (man sed)
http://www.flickr.com/photos/vernhart/1574355240/




              Almir 'm3nd3s'
                   @m3nd3s
         m3nd3s@gmail.com
http://www.almirmendes.net/

Mais conteúdo relacionado

Semelhante a SED - Introdução ao Stream Editor

Introdução ao Desenvolvimento WEB com Ruby on Rails
Introdução ao Desenvolvimento WEB com Ruby on RailsIntrodução ao Desenvolvimento WEB com Ruby on Rails
Introdução ao Desenvolvimento WEB com Ruby on RailsJulio Betta
 
Shell Tips and Tricks for sysadmin
Shell Tips and Tricks for sysadminShell Tips and Tricks for sysadmin
Shell Tips and Tricks for sysadminMagno Torres
 
Lightning Talk sobre Sinatra no III RubyOnRio
Lightning Talk sobre Sinatra no III RubyOnRioLightning Talk sobre Sinatra no III RubyOnRio
Lightning Talk sobre Sinatra no III RubyOnRioLuciano Sousa
 
Puppet – Torne Seu Datacenter áGil
Puppet – Torne Seu Datacenter áGilPuppet – Torne Seu Datacenter áGil
Puppet – Torne Seu Datacenter áGiljefesrodrigues
 

Semelhante a SED - Introdução ao Stream Editor (7)

Introdução ao Desenvolvimento WEB com Ruby on Rails
Introdução ao Desenvolvimento WEB com Ruby on RailsIntrodução ao Desenvolvimento WEB com Ruby on Rails
Introdução ao Desenvolvimento WEB com Ruby on Rails
 
Efficient rails
Efficient railsEfficient rails
Efficient rails
 
Shell Tips and Tricks for sysadmin
Shell Tips and Tricks for sysadminShell Tips and Tricks for sysadmin
Shell Tips and Tricks for sysadmin
 
apostila-expressoes-regulares.pdf
apostila-expressoes-regulares.pdfapostila-expressoes-regulares.pdf
apostila-expressoes-regulares.pdf
 
Lightning Talk sobre Sinatra no III RubyOnRio
Lightning Talk sobre Sinatra no III RubyOnRioLightning Talk sobre Sinatra no III RubyOnRio
Lightning Talk sobre Sinatra no III RubyOnRio
 
Minicurso Ruby on Rails
Minicurso Ruby on RailsMinicurso Ruby on Rails
Minicurso Ruby on Rails
 
Puppet – Torne Seu Datacenter áGil
Puppet – Torne Seu Datacenter áGilPuppet – Torne Seu Datacenter áGil
Puppet – Torne Seu Datacenter áGil
 

Mais de Almir Mendes

Software Livre, que história é essa?
Software Livre, que história é essa?Software Livre, que história é essa?
Software Livre, que história é essa?Almir Mendes
 
[Rock'n Rails] Deploying Rails Applications with Capistrano
[Rock'n Rails] Deploying Rails Applications with Capistrano[Rock'n Rails] Deploying Rails Applications with Capistrano
[Rock'n Rails] Deploying Rails Applications with CapistranoAlmir Mendes
 
Projeto Arduino - Hardware para fazer coisas legais - FOCAI
Projeto Arduino - Hardware para fazer coisas legais - FOCAIProjeto Arduino - Hardware para fazer coisas legais - FOCAI
Projeto Arduino - Hardware para fazer coisas legais - FOCAIAlmir Mendes
 
Palestra "Do PHP ao Rails" - FOCAI
Palestra "Do PHP ao Rails" - FOCAIPalestra "Do PHP ao Rails" - FOCAI
Palestra "Do PHP ao Rails" - FOCAIAlmir Mendes
 
Deploying Rails Applications with Capistrano
Deploying Rails Applications with CapistranoDeploying Rails Applications with Capistrano
Deploying Rails Applications with CapistranoAlmir Mendes
 
Arduino Project - Ciclo de palestras CEET Vasco Coutinho
Arduino Project - Ciclo de palestras CEET Vasco CoutinhoArduino Project - Ciclo de palestras CEET Vasco Coutinho
Arduino Project - Ciclo de palestras CEET Vasco CoutinhoAlmir Mendes
 
Palestra "Do PHP ao Rails"
Palestra "Do PHP ao Rails"Palestra "Do PHP ao Rails"
Palestra "Do PHP ao Rails"Almir Mendes
 
Arduino Project :: Giran Siege
Arduino Project :: Giran SiegeArduino Project :: Giran Siege
Arduino Project :: Giran SiegeAlmir Mendes
 
Integração contínua com Hudson CI
Integração contínua com Hudson CIIntegração contínua com Hudson CI
Integração contínua com Hudson CIAlmir Mendes
 
Palestra sobre AWK [Giran Siege]
Palestra sobre AWK [Giran Siege]Palestra sobre AWK [Giran Siege]
Palestra sobre AWK [Giran Siege]Almir Mendes
 
Distribuições Linux
Distribuições LinuxDistribuições Linux
Distribuições LinuxAlmir Mendes
 
Entendendo como fazer um firewall pessoal
Entendendo como fazer um firewall pessoalEntendendo como fazer um firewall pessoal
Entendendo como fazer um firewall pessoalAlmir Mendes
 
PHP Day - PHP para iniciantes
PHP Day - PHP para iniciantesPHP Day - PHP para iniciantes
PHP Day - PHP para iniciantesAlmir Mendes
 

Mais de Almir Mendes (18)

Software Livre, que história é essa?
Software Livre, que história é essa?Software Livre, que história é essa?
Software Livre, que história é essa?
 
Arduino Project
Arduino ProjectArduino Project
Arduino Project
 
[Rock'n Rails] Deploying Rails Applications with Capistrano
[Rock'n Rails] Deploying Rails Applications with Capistrano[Rock'n Rails] Deploying Rails Applications with Capistrano
[Rock'n Rails] Deploying Rails Applications with Capistrano
 
Projeto Arduino - Hardware para fazer coisas legais - FOCAI
Projeto Arduino - Hardware para fazer coisas legais - FOCAIProjeto Arduino - Hardware para fazer coisas legais - FOCAI
Projeto Arduino - Hardware para fazer coisas legais - FOCAI
 
Palestra "Do PHP ao Rails" - FOCAI
Palestra "Do PHP ao Rails" - FOCAIPalestra "Do PHP ao Rails" - FOCAI
Palestra "Do PHP ao Rails" - FOCAI
 
Deploying Rails Applications with Capistrano
Deploying Rails Applications with CapistranoDeploying Rails Applications with Capistrano
Deploying Rails Applications with Capistrano
 
Dicas de SSH
Dicas de SSHDicas de SSH
Dicas de SSH
 
Arduino Project - Ciclo de palestras CEET Vasco Coutinho
Arduino Project - Ciclo de palestras CEET Vasco CoutinhoArduino Project - Ciclo de palestras CEET Vasco Coutinho
Arduino Project - Ciclo de palestras CEET Vasco Coutinho
 
Palestra "Do PHP ao Rails"
Palestra "Do PHP ao Rails"Palestra "Do PHP ao Rails"
Palestra "Do PHP ao Rails"
 
Arduino Project :: Giran Siege
Arduino Project :: Giran SiegeArduino Project :: Giran Siege
Arduino Project :: Giran Siege
 
Integração contínua com Hudson CI
Integração contínua com Hudson CIIntegração contínua com Hudson CI
Integração contínua com Hudson CI
 
Palestra sobre AWK [Giran Siege]
Palestra sobre AWK [Giran Siege]Palestra sobre AWK [Giran Siege]
Palestra sobre AWK [Giran Siege]
 
Palestra regex
Palestra regexPalestra regex
Palestra regex
 
Palestra regex
Palestra regexPalestra regex
Palestra regex
 
Palestra de PDO
Palestra de PDOPalestra de PDO
Palestra de PDO
 
Distribuições Linux
Distribuições LinuxDistribuições Linux
Distribuições Linux
 
Entendendo como fazer um firewall pessoal
Entendendo como fazer um firewall pessoalEntendendo como fazer um firewall pessoal
Entendendo como fazer um firewall pessoal
 
PHP Day - PHP para iniciantes
PHP Day - PHP para iniciantesPHP Day - PHP para iniciantes
PHP Day - PHP para iniciantes
 

SED - Introdução ao Stream Editor