Logotipo Dicas-L, por Ricardo Burile

Busca

Visite também: UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  NoticiasLinux ·  BR-Linux ·  SoftwareLivre.org ·  [mais]   
 

Você está aqui: Home  → Arquivo Dicas-L

 

Virtualização XEN

Assine a Lista Dicas-L

Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.

Usando variáveis para alterar arquivos com sed

Colaboração: Sérgio Luiz Araújo Silva

Data de Publicação: 13 de Janeiro de 2007

Sempre que estudamos o SED (editor de streams), nos é ensinado que o arquivo a ser tratado pelo sed deve ser redirecionado para um novo arquivo e em seguida o conteúdo deste novo arquivo deve ser redirecionada para o arquivo original.

Mas...

... Criando uma variável (equivalente àquelas criadas com crases) que obrigam o shell a executar primeiro seu conteúdo podemos fazer algo do tipo:

echo "$(sed 's/nao/sim/' teste.txt)" > teste.txt

Um subshell é criado em --> "$(sed 's/nao/sim/' teste.txt)" e o resultado é então jogado para o nosso arquivo

Observações:

  • Caso encontrem erros ou desejem fazer adições a esta dica sintam-se à vontade.
  • Não esquça de usar as aspas duplas senão o arquivo ficará com uma linha enorme pois o shell retira os espaços e quebras de linha

Esta dica é uma variação da dica publicada pelo "Davidson" Davidson Rodrigues Paulo".


Motorola mistura Linux e Windows Media Player

Fonte: Notícias Linux

Conheça o Motorizr Z6 da Motorola que mistura Linux e Windows Media Player "O aparelho ... traz uma inusitada combinação de tecnologias. O sistema operacional fica por conta do Java Linux. Quem comanda a parte de música, por sua vez, é o Windows Media Player da Microsoft."

Fonte: http://info.abril.com.br/aberto/infonews/012007/09012007-17.shl

Comente: http://www.noticiaslinux.com.br/nl1168392576.html#comentarios

Veja a relação completa dos artigos de Sérgio Luiz Araújo Silva

Stumble Upon Digg This Del.icio.us Twitter Recomendar este artigo a um amigo Entre em contato Formato PDF
Newsfeed RSS
Formato para impressão
StumbleUpon Digg Del.icio.us Twitter Recomendar Contato PDF RSS Imprimir

Referências Adicionais

Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.

Avalie esta dica

  • Currently 3.04/5
  • 1
  • 2
  • 3
  • 4
  • 5

Avaliação: 3.0 /5 (656 votos)

Opinião dos Leitores

Stefan da S. Billieri
14 Jan 2007, 16:09
$>./sed_teste

real 0m2.208s
user 0m1.892s
sys 0m0.163s

real 0m1.866s
user 0m1.167s
sys 0m0.626s

$> cat sed_teste
#!/bin/bash

declare -i i=0

if ! [ -e teste.txt.backup ];then
( while [ $i -lt 100000 ];do echo "nao nao nao nao nao nao nao nao nao nao"; let i++;done )>| teste.txt
cp -f teste.txt teste.txt.backup
else
cp -f teste.txt.backup teste.txt
fi

time echo "$(sed 's/nao/sim/g' teste.txt)" >| teste.txt
mv -f teste.txt teste1.txt

cp -f teste.txt.backup teste.txt
time sed -i 's/nao/sim/g' teste.txt
mv -f teste.txt teste2.txt

diff -q teste1.txt teste2.txt
Gustavo
13 Jan 2007, 11:25
Legal a dica e muito interessante essa ideia do subshell. Pode ser util para varias outra situacoes.

Entretanto, o sed tem uma opcao que facilita tudo isso e ja foi publicada aqui na dicas-l. Usando o "-i" teria o mesmo efeito que o comando apresentado acima

sed -i 's/nao/sim/' teste.txt

Maires detalhes na dica
sed: alterações sem arquivos temporários
http://www.dicas-l.com.br/dicas-l/20041102.php
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script
Faça o download gratuito da 10ª Edição da Broffice.ORG Zine
Submarino.com.br

Aprenda inglês em casa
Curso estruturado com o que existe de melhor e mais rápido em estratégias e técnicas de aprendizado para adultos.
Conheça as aulas experimentais.