palestra de sed - stream editor

Post on 18-Jan-2015

751 Views

Category:

Technology

5 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

SED - Stream EditorSED - Stream EditorAlmir 'm3nd3s'@m3nd3sm3nd3s@gmail.comhttp://www.almirmendes.com/

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

Não interativoNão interativo

Quando usar?

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

Quando NÃO usar?

ComoComo funciona funciona

o o sedsed??

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

Orientado a linhaOrientado a linha

STDINSTDIN ouou arquivoarquivo

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

sed 5p texto.txtsed 5p texto.txt

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

O que era aquele '5p' ?

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

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

Uso intensivo Uso intensivo de ReGexde ReGex

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

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

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

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

Número da linhaNúmero da linha

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

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

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

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

IntervalosIntervalos

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

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

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

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

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

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

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

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

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

Salvando AlteraçõesSalvando Alterações

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

ERRADO!ERRADO!

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

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

Perfect!!!Perfect!!!

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

texto.txt.origtexto.txt.orig

Comandos de Comandos de ediçãoedição

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

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

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

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

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

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

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

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

também!também!

# 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

RegistradoresRegistradores

Padrão Reserva

g G h H xg G h H x

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

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

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

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

Manpage (man sed)

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

m3nd3s@gmail.comm3nd3s@gmail.comhttp://www.almirmendes.net/http://www.almirmendes.net/

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

top related