Pular para o conteúdo

Múltiplas expressões no SED

Dica publicada em Shell Script / Expressões Regulares
Fábio Berbert de Paula fabio
Hits: 3.330 Categoria: Shell Script Subcategoria: Expressões Regulares
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Múltiplas expressões no SED

Dica rápida de como usar múltiplas expressões em um único comando sed.

Dado um arquivo "texto.txt" com o seguinte conteúdo:

Morra o Windows!

Você quer substituir:
  1. Morra por Viva
  2. Windows por Linux

Então você teria que combinar dois comandos certo?

sed -i 's/Morra/Viva/' texto.txt
$ sed -i 's/Windows/Linux/' texto.txt


Para combinar ambos num único comando, basta separar as expressões por ponto e vírgula:

sed -i 's/Morra/Viva/ ; s/Windows/Linux/' texto.txt

Uma sintaxe alternativa é separando um comando para cada argumento -e:

sed -i -e 's/Morra/Viva/' -e 's/Windows/Linux/' texto.txt

Conferindo o resultado em texto.txt:

figlet < texto.txt
__     ___                      _     _                  _ 
\ \   / (_)_   ____ _    ___   | |   (_)_ __  _   ___  _| |
 \ \ / /| \ \ / / _` |  / _ \  | |   | | '_ \| | | \ \/ / |
  \ V / | |\ V / (_| | | (_) | | |___| | | | | |_| |>  <|_|
   \_/  |_| \_/ \__,_|  \___/  |_____|_|_| |_|\__,_/_/\_(_)
                                                           

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Como checar a temperatura do processador via linha de comando

Python3 demorando a compilar numpy e/ou pandas [Resolvido]

Como editar arquivos remotos usando o Vim

Arduino - Porta serial acessível a todos os usuários

Exim4 - retry time not reached [Resolvido]

sed - Eliminando linhas em branco

Criando usuários a partir de uma lista

Bloqueando tráfego via MAC com iptables

SED - combinando o conteúdo de dois arquivos

Limitando o alcance do SED por números de linha

#1 Comentário enviado por maurixnovatrento em 06/06/2020 - 11:37h

Usando o figlet hein! Mas tudo bem, é Uma excelente dica assa do sed. Talvez eu encurte meus scripts.



___________________________________
Conhecimento não se Leva para o Túmulo.
#2 Comentário enviado por fabio em 07/06/2020 - 01:21h


Usando o figlet hein! Mas tudo bem, é Uma excelente dica assa do sed. Talvez eu encurte meus scripts.



Num é... figlet é o famoso "old but gold". Tinha até me esquecido da existência dele até você postar a dica.

Contribuir com comentário

Entre na sua conta para comentar.