O comando de substituição serve para trocar uma cadeia de caracteres por outra num texto. O formato do comando é
[endereço1[,endereço2]]s/procura/substituição/{modificadores}
onde os modificadores podem ser os seguintes
Um endereço pode ser uma Expressão Regular (ER) entre barras /ER/ ou um número de linha. Se dois endereços estão separados por vírgulas, a substiuição é aplicada para todas as linhas entre as duas especificadas, inclusive. Por exemplo, considere o arquivo linhas
$ cat linhas
linha 1 (um)
linha 2 (dois)
linha 3 (três)
Para aplicarmos a substituição de linha por LINHA nas linhas 1 e 2, escrevemos
$ sed -e '1,2s/linha/LINHA/' linhas
LINHA 1 (um)
LINHA 2 (dois)
linha 3 (três)
ou seja, a substituição de linha porLINHA só acontece nas linhas 1 e 2, conforme especificado no endereço 1,2s/... . Ao invés de usar números de linha, podemos endereçar a substituição através de Expressões Regulares, conforme abaixo
sed -e '/um/s/linha/LINHA/' linhas
LINHA 1 (um)
linha 2 (dois)
linha 3 (três)
pois o sed somente executa a substituição nas linhas que contém a ER /um/. É uma outra forma de endereçamento.
leon 2008-08-19