palestra de sed - stream editor

46
SED - Stream Editor SED - Stream Editor Almir 'm3nd3s' @m3nd3s [email protected] http://www.almirmendes.com/ http://www.flickr.com/photos/gnackgnackgnack/4367460746/

Upload: almir-m3nd3s

Post on 18-Jan-2015

751 views

Category:

Technology


5 download

DESCRIPTION

Palestra sobre o editor não interativo sed, comandos básicos, forma padrão de uso, como usar, etc.

TRANSCRIPT

Page 1: Palestra de SED - Stream Editor

SED - Stream EditorSED - Stream EditorAlmir 'm3nd3s'@[email protected]://www.almirmendes.com/

http://www.flickr.com/photos/gnackgnackgnack/4367460746/

Page 2: Palestra de SED - Stream Editor

Não interativoNão interativo

Page 3: Palestra de SED - Stream Editor

Quando usar?

http://www.flickr.com/photos/dcassaa/397696572/

Quando NÃO usar?

Page 4: Palestra de SED - Stream Editor

ComoComo funciona funciona

o o sedsed??

Page 5: Palestra de SED - Stream Editor

FiltroFiltrohttp://www.flickr.com/photos/bigandsharp/342738650/

Page 6: Palestra de SED - Stream Editor

Orientado a linhaOrientado a linha

Page 7: Palestra de SED - Stream Editor

STDINSTDIN ouou arquivoarquivo

Page 8: Palestra de SED - Stream Editor

cat texto.txt | sed 5pcat texto.txt | sed 5p

sed 5p texto.txtsed 5p texto.txt

sed 5p < texto.txtsed 5p < texto.txt

Page 9: Palestra de SED - Stream Editor

O que era aquele '5p' ?

http://www.flickr.com/photos/st3f4n/3556697439/

Page 10: Palestra de SED - Stream Editor

EndereçosEndereçoshttp://www.flickr.com/photos/thewhitestdogalive/519505660/

Page 11: Palestra de SED - Stream Editor

Uso intensivo Uso intensivo de ReGexde ReGex

http://www.flickr.com/photos/rgarciasuarez74/2043759104/

Page 12: Palestra de SED - Stream Editor

sed [options] rules [fle]sed [options] rules [fle]

[address1, [address2]] command [params][address1, [address2]] command [params]

Page 13: Palestra de SED - Stream Editor

cat texto.txt | sed pcat texto.txt | sed p

Page 14: Palestra de SED - Stream Editor

Número da linhaNúmero da linha

PadrãoPadrãohttp://www.flickr.com/photos/spilt-milk/164145237/

Page 15: Palestra de SED - Stream Editor

sed '5d' texto.txtsed '5d' texto.txt

Page 16: Palestra de SED - Stream Editor

sed '/giran/d' texto.txtsed '/giran/d' texto.txt

Page 17: Palestra de SED - Stream Editor

sed '7d;15d;/feira/d' texto.txtsed '7d;15d;/feira/d' texto.txt

Page 18: Palestra de SED - Stream Editor

IntervalosIntervalos

Page 19: Palestra de SED - Stream Editor

sed '5,10d' texto.txtsed '5,10d' texto.txt

Page 20: Palestra de SED - Stream Editor

sed '5,$d' texto.txtsed '5,$d' texto.txt

Page 21: Palestra de SED - Stream Editor

sed '/siege/,+5d' texto.txtsed '/siege/,+5d' texto.txt

Page 22: Palestra de SED - Stream Editor

sed '/um/,/sete/ s/^/*/' texto.txtsed '/um/,/sete/ s/^/*/' texto.txt

Page 23: Palestra de SED - Stream Editor

E quando temos “/” E quando temos “/” no padrão?no padrão?

Page 24: Palestra de SED - Stream Editor

sed '\,/views/header.htm,d' texto.txtsed '\,/views/header.htm,d' texto.txt

Page 25: Palestra de SED - Stream Editor

Vários comandos, Vários comandos, mesmo endereçomesmo endereço

Page 26: Palestra de SED - Stream Editor

sed '/um/,/sete/{ /um/ b; /sete/ b; sed '/um/,/sete/{ /um/ b; /sete/ b; s/^/*/; }' texto.txts/^/*/; }' texto.txt

Page 27: Palestra de SED - Stream Editor

sed '1,/giran/{ /giran/ s/^/*/; }' texto.txtsed '1,/giran/{ /giran/ s/^/*/; }' texto.txt

Page 28: Palestra de SED - Stream Editor

Salvando AlteraçõesSalvando Alterações

Page 29: Palestra de SED - Stream Editor

sed 's/hum/um/' texto.txt > texto.txtsed 's/hum/um/' texto.txt > texto.txt

ERRADO!ERRADO!

Page 30: Palestra de SED - Stream Editor

sed '1,+5d' texto.txt > texto-alt.txtsed '1,+5d' texto.txt > texto-alt.txt

Solução 1Solução 1

mv texto-alt.txt texto.txtmv texto-alt.txt texto.txt

Page 31: Palestra de SED - Stream Editor

cp -a texto.txt texto.tmp.txtcp -a texto.txt texto.tmp.txt

Solução 2Solução 2

rm texto.tmp.txtrm texto.tmp.txt

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

Page 32: Palestra de SED - Stream Editor

Perfect!!!Perfect!!!

sed -i orig '1,+5d' texto.txtsed -i orig '1,+5d' texto.txt

texto.txt.origtexto.txt.orig

Page 33: Palestra de SED - Stream Editor

Comandos de Comandos de ediçãoedição

Page 34: Palestra de SED - Stream Editor

sed 'sed 'ss/h1/h3//h1/h3/IgIg' texto.txt' texto.txt

sed '/^$/sed '/^$/cc #' texto.txt #' texto.txt

sed '/prompt/sed '/prompt/ii #' texto.txt #' texto.txt

sed '/prompt/sed '/prompt/aa #' texto.txt #' texto.txt

sed 'sed 'yy/abc/ABC/' texto.txt/abc/ABC/' texto.txt

Page 35: Palestra de SED - Stream Editor

sed 's/;/\n/g' texto.txtsed 's/;/\n/g' texto.txt

Page 36: Palestra de SED - Stream Editor

sed 's/casa/CASA/I' texto.txtsed 's/casa/CASA/I' texto.txt

Page 37: Palestra de SED - Stream Editor

sed 's/\(read\) \([[:alpha:]]\+\)/sed 's/\(read\) \([[:alpha:]]\+\)/\1(\2)/' texto.txt\1(\2)/' texto.txt

Page 38: Palestra de SED - Stream Editor

sed '/<body>/r texto.txt' sed '/<body>/r texto.txt' arquivo.htmlarquivo.html

Page 39: Palestra de SED - Stream Editor

sed '/<h1>/c <h3>Novo</h3>' arquivo.html

Page 40: Palestra de SED - Stream Editor

sed '/$/{p; p ;p;}' texto.txtsed '/$/{p; p ;p;}' texto.txt

Page 41: Palestra de SED - Stream Editor

Podemos salvar os Podemos salvar os comandos em um arquivo comandos em um arquivo

também!também!

Page 42: Palestra de SED - Stream Editor

# Meu programa em Sed# Meu programa em Sed

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

# apaga a última linha# apaga a última linha$d$d

Page 43: Palestra de SED - Stream Editor

RegistradoresRegistradores

Padrão Reserva

g G h H xg G h H x

Page 44: Palestra de SED - Stream Editor

Outros comandosOutros comandos

: → Marca uma posição: → Marca uma posição

b → Pula para uma marcaçãob → Pula para uma marcação

! → Inverte um comando! → Inverte um comando

Page 45: Palestra de SED - Stream Editor

ReferênciasReferênciashttp://www.grymoire.com/Unix/Sed.html

http://aurelio.net/sed/sed-HOWTO/

http://aurelio.net/sed/livro/

Manpage (man sed)

Page 46: Palestra de SED - Stream Editor

Almir 'm3nd3s'Almir 'm3nd3s'@m3nd3s@m3nd3s

[email protected]@gmail.comhttp://www.almirmendes.net/http://www.almirmendes.net/

http://www.flickr.com/photos/vernhart/1574355240/