shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] sed - mudar pequena frase por outra em um arquivo


From: Tiago Barcellos Peczenyj
Subject: Re: [shell-script] sed - mudar pequena frase por outra em um arquivo
Date: Mon, 27 Nov 2006 09:56:42 -0200

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 <address@hidden> 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, address@hidden <address@hidden> 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


reply via email to

[Prev in Thread] Current Thread [Next in Thread]