De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.


sed - alterações sem arquivos temporários

Colaboração: Rodrigo Bernardo Pimentel

Data de Publicação: 02 de Novembro de 2004

O modo mais comum de se utilizar o sed, quando se desejam fazer alterações em um arquivo, é jogar as alterações em um arquivo temporário, depois mover este para o arquivo original:

 sed 's/foo/bar/g' arquivo > arquivo.tmp && mv arquivo.tmp arquivo

Esta forma é inclusive usada com freqüência nas mensagens veiculadas na dicas-l.

No entanto, desde a versão 3.95 (pelo que pude verificar), existe a opção --in-place (ou -i), que permite a edição direta do arquivo:

sed -i 's/foo/bar/g' arquivo

Pode-se também especificar um sufixo para o -i, de forma que o arquivo original seja copiado para o nome original, acrescentado do sufixo, antes de ser alterado, criando, na prática, um arquivo de backup:

sed -i.bak 's/foo/bar/g' arquivo

Isto altera arquivo (todas as ocorrências de foo são substituídas por bar), criando arquivo.bak com o conteúdo original de arquivo (antes da substituição).

Notas: O sufixo deve estar junto ao -i, não pode ser separado por espaços, como normalmente é permitido em argumentos de linha de comando. Se for utilizado o formato longo, o formato é --in-place=sufixo.

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de Rodrigo Bernardo Pimentel