ROOT, RooT etc. No Sed da GNU, a partir da versao3.01-beta1(*), foi adicionado o modificador I no endereco e nocomando s///, fazendo com que o comando acima fique mais simples: prompt$ sed'/root/Id' texto.txtOu ainda: prompt$ sed 's/root/administrador/Ig'texto.txt(*) veja o topico Nota sobre osadicionais GNU Lendo e gravando em arquivosexternos0.4.1. Lendo arquivosUma tarefa comum e incluir cabecalhoe rodape num arquivo qualquer. O Sed possui um comando especificopara ler arquivos, o r, entao basta(*): prompt$ sed -e '1r cabecalho.txt' -e'$r rodape.txt' texto.txtPara incluir o cabecalho apos a linha1 e incluir o rodape apos a ultima linha. (*) a explicacao do porque dasopcoes -e esta no topico Aplicando varios comandos de uma vez. Gravando arquivosO comando w grava num arquivo a linhaatual, ou melhor, o conteudo do espaco padrao. Por exemplo, vocequer gravar num arquivo o resultado de uma busca por linhas quecontem a palavra estorvo. A solucao nao-Sed seria: prompt$ grep 'estorvo' texto.txt >estorvos.txtNosso similar em Sed seria: prompt$ sed '/estorvo/w estorvos.txt'texto.txtGravar dados num arquivo tambem podeservir de espaco auxiliar caso o espaco reserva nao sejasuficiente. Mas esta e uma opcao drastica, nao tao flexivel.Mais informacoes sobre o espaco reserva no topico Conhecendo osregistradores internos. Trocando um trecho de texto poroutroUma tarefa que parece simples masconfunde, e trocar um trecho de texto, como um paragrafo inteiropor exemplo, por outro trecho, independente do numero de linhas deambos. Trocar varias linhas por umaEssa e simples, basta usar o comandoc, que "Coloca" um texto no lugar da linha atual. A unicacomplicacao e definir o endereco, para aplicar o comando apenasnas linhas desejadas. Por exemplo, vamos colocar uma frase no lugarde uma area de texto pre-formatado num documento HTML. Esta area edelimitada pelos identificadores <pre> e </pre>: prompt$ sed '/<pre>/,/<\/pre>/c\prompt$ aqui tinha texto pre-formatado'texto.htmlNote que o comando c (assim como o a eo i) exige que o texto que ele recebe como parametro esteja na linhaseguinte, estando a quebra de linha escapada com a barra invertida \ No Sed da GNU, a partir da versao3.02a(*), e permitido que se coloque o texto na mesma linha: prompt$ sed '/<pre>/,/<\/pre>/caqui tinha texto pre-formatado' texto.html(*) veja o topico Nota sobre osadicionais GNU Trocar varias linhas por outrasSimilarmente a trocar por apenas umalinha, pode-se usar o comando c e passar varias linhas para ele. Ounico detalhe e que todas as linhas devem ser escapadas no final,menos a ultima: prompt$ sed'/<pre>/,/<\/pre>/c \prompt$ aqui tinha textopre-formatado,\prompt$ mas eu resolvi tirar.\prompt$ porque?\prompt$ porque sim' texto.htmlE claro, quando o comando comeca aficar grande desse jeito, e melhor coloca-lo num arquivo. Saibamais detalhes sobre isso no topico Colocando comandos sed numarquivo. Mas melhor ainda e separar o comandoSed do texto, colocando-o num arquivo separado. Assim, quando seprecisar alterar este texto, basta edita-lo, sem mudar o comandoSed, e sem precisar ficar colocando \ no final de cada linha. Supondo que nosso texto explicativo doporque da retirada do texto pre-formatado foi gravado no arquivodesculpa.txt, utilizaremos o comando r para le-lo e o comando d paraapagar o texto antigo: prompt$ sed -e '/<\/pre>/rdesculpa.txt' -e '/<pre>/,/<\/pre>/d' texto.htmlEntao acompanhe o que acontece: oprimeiro comando sera executado apenas na linha </pre> que eo