palestra de sed - stream editor
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'@[email protected]://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
[email protected]@gmail.comhttp://www.almirmendes.net/http://www.almirmendes.net/
http://www.flickr.com/photos/vernhart/1574355240/