Múltiplas expressões no SED
Dica publicada em Shell Script / Expressões Regulares
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:
Você quer substituir:
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
Dado um arquivo "texto.txt" com o seguinte conteúdo:
Morra o Windows!
Você quer substituir:
- Morra por Viva
- 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 / (_| | | (_) | | |___| | | | | |_| |> <|_|
\_/ |_| \_/ \__,_| \___/ |_____|_|_| |_|\__,_/_/\_(_)
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.