Substituindo ocorrências de palavras dentro de um arquivo

Publicado por Xerxes Lins em 18/06/2015

[ Hits: 5.533 ]

Blog: https://voidlinux.org/

 


Substituindo ocorrências de palavras dentro de um arquivo



Com o Stream Editor, ou simplesmente "sed", podemos substituir todas as ocorrências de uma determinada palavra dentro de um arquivo.

O comando funciona assim:

sed -i 's/original/nova/g' arquivo

Explicando os parâmetros:
  • "-i" - in-place (define as alterações no arquivo. Se usar um sufixo, cria um backup)
  • "s" - substituição
  • "original" - a palavra a ser substituída
  • "nova" - a nova palavra que vai substituir a antiga
  • "g"- global (todo arquivo)
  • "arquivo" - nome do arquivo

Para mais informações:

sed --help

Referência: Sed HOWTO :: aurelio.net

Outras dicas deste autor

"Arczando" o Debian

Joomla! no GNU/Linux em 4 passos

Papel de parede aleatório no Fluxbox

[RESOLVIDO] 'UnicodeError: ASCII encoding error: ordinal not in range(128) no ScriptLattes

VirtualBox sem conexão Wireless [Resolvido]

Leitura recomendada

Indentar XML automaticamente

Convertendo formato de vídeo OGV para AVI

Conversão de arquivos EBCDIC para ASCII

Combinando find com a variável PATH

Dropbox com dual boot

  

Comentários
[1] Comentário enviado por tiekookeit em 24/06/2015 - 08:36h

Complementar a dica do garoto

o separado "/" pode ser qualquer caractere no caso do / fazer parte da sua expressão
Ex:
sed -i 's|original|nova|g' arquivo
ou
sed -i 's:origina:nova:g' arquivo

Os marcadores ^ e $ indicam respectivamente inicio de linha (^) e fim de linha ($).
Exemplo para remover # no início de linha
sed 's:^#::g' -i arquivo

Caso não queira editar direto e ver como vai ficar antes, execute o comando sem o "i", porém ele vai gorfar na tela o conteúdo do arquivo, se não quiser que gorfe na tela, redirecione para um arquivo qualquer

Na tela
sed 's|antigapalavra|novapalavra|g' arquivo

Para outro arquivo
sed 's/antigapalavra/novapalavra/g' arquivo > arquivo1

Caso queira se ignorar a caixa da letra (maiúscula e minúscula) antes do "g" adicione o modificador "I", assim ele vai coincidir ignorando a caixa da palavra.
Ex:
sed 's:antigapalavra:novapalavra:i g' -i arquivo



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts