Opa, Alexandre, se vc não faz nenhuma verificação se o arquivo gerado está ok, não precisa criar um arquivo temporario, copiar e remover, basta usar a opção -i do sed:
$ sed '/register_globals/s/On/Off/' -i php.ini Usei uma notação mais 'simples' do sed retirada do sed1liner http://aurelio.net/sed/1liners-ptBR.txt nesta dica: OTIMIZANDO PARA MAIOR VELOCIDADE: Se a velocidade de execução precisa aumentar (em virtude de grandes arquivos de entrada ou de processadores e discos rígidos lentos), a substituição será executada mais rapidamente se a expressão de "procura" é especificada antes da instrução "s/.../.../". Assim: sed 's/foo/bar/g' arquivo # comando de substituição padrão sed '/foo/ s/foo/bar/g' arquivo # executa de forma mais rápida sed '/foo/ s//bar/g' arquivo # sintaxe mais sucinta Abraços ;-) On 11/26/06, Alexandre Bueno Chaves <[EMAIL PROTECTED]> wrote: > > Eu faço da seguinte forma: > > cat php.ini | sed s/'register_globals = On'/'register_globals = Off'/ > > php2.ini; cp php2.ini php.ini; rm -f php2.ini > > []'s > > > On 11/25/06, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote: > > > > Olá pessoal, > > > > Sou iniciante ainda em shell, e principalmente no SED. > > > > Estou precisando ler um arquivo (no caso o php.ini, do Apache) e mudar > > o register_globals de On para Off > > > > No arquivo , a frase aparece em uma unica linha, da seguinte forma: > > > > ---------------------------------------- > > xxxxxxxxxx > > xxxxxxxxxxxxx > > register_globals = On > > xxxxxxxxxxx > > xxxxxxxxxxxx > > ---------------------------------- > > > > e precisaria muito que ficasse assim > > > > ---------------------------------------- > > xxxxxxxxxx > > xxxxxxxxxxxxx > > register_globals = Off > > xxxxxxxxxxx > > xxxxxxxxxxxx > > ---------------------------------- > > > > pesquisando na Net, eu cheguei a tentar o seguinte código: > > > > sed -e 's/register_globals = On/register_globals = Off/Ig' /var/lib/mysql > > > > Ou seja, a ideia seria achar a ocorrencia exata "register_globals = On" > > e trocar > > somente esta expressão por "register_globals = Off". Não dá pra so > > trocar "On" por "Off" genericamente no arquivo, porque tem varias > > outras ocorrências On/Off no arquivo que não podem ser alteradas. > > > > Já pesquisei na Net a tarde inteira, mas a maioria dos exemplos se refere > > a > > troca de palavras, não consegui achar nenhum que tivesse espaço no meio, > > ou > > trocasse uma pequena frase por outra. > > > > Agradeço desde já qualquer ajuda que o pessoal possa me dar, e de repente, > > esse comando se colocado em um script, pode até servir à comunidade, > > porque pode agilizar um pouco a tarefa > > de quem configura vários servidores com o apache, > > e precisa desabilitar o register_globals. > > > > Um abraço > > > > Abdala > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > -- Tiago B Peczenyj Linux User #405772 # cd /pub # more beer
