mandrivabrasil.org - Forum
19 de Junho de 2013, 13:11 *
Bem-vindo, Visitante. Por favor faça o Login ou Registro.

Login com nome de usuário, senha e duração da sessão
Notícias:
 
   Home   Ajuda Login Registrar  
Páginas: [1]   Ir para o Fundo
  Imprimir  
Autor Tópico: Sed  (Lida 1437 vezes)
Cllaud
Membro Intermediário
***
Offline Offline

Mensagens: 133


Ver Perfil
Sed
« : 13 de Outubro de 2009, 14:53 »

Salve!
Preciso que o sed acrescente um # no inicio da linha, no caso o crontab, qdo a mesma contiver as strings: arquivo1.sh, arquivo2.sh, arquivo3.sh.

01 * * * * root nice -n 19 run-parts --report /tmp/arquivo1.sh
02 * * * * root nice -n 19 run-parts --report /tmp/arquivo2.sh
03 * * * * root nice -n 19 run-parts --report /tmp/arquivo3.sh

O mesmo processo deverá ser feito, porém, para "retirar" o # na frente dessas linhas.
Por exemplo, me situando por linhas consigo acrescentar o hash desta maneira:
sed -e '1,3s/^/#/' crontab  (acrescenta o # nas linhas de 1 a 3)

Mas, caso as linhas sejam alteradas de posição, não funciona. Por isso a necessidade de fazer de acordo com a string contida nas linhas do arquivo, mas estou levando um laço para fazer isto.

Registrado
maiconfaria
Membro Intermediário
***
Offline Offline

Mensagens: 158



Ver Perfil WWW
« Responder #1 : 13 de Outubro de 2009, 15:14 »

sed -e 's/^.*arquivo1.sh/#&/'

[maicon@oceano dizima-Rudin]$ echo "01 * * * * root nice -n 19 run-parts --report /tmp/arquivo1.sh" | sed -e 's/^.*arquivo1.sh/#&/'
#01 * * * * root nice -n 19 run-parts --report /tmp/arquivo1.sh


Ajuda ?
Registrado
Cllaud
Membro Intermediário
***
Offline Offline

Mensagens: 133


Ver Perfil
« Responder #2 : 13 de Outubro de 2009, 15:28 »

Deu certo para acrescentar o # !!...
Agora, estou tentando remover, desta maneira:


sed -e 's/^.*arquivo1.sh/#&/d' /etc/crontab

Acrescentei o "d" no final, mas nao deu certo...
Registrado
Cllaud
Membro Intermediário
***
Offline Offline

Mensagens: 133


Ver Perfil
« Responder #3 : 13 de Outubro de 2009, 15:51 »

Embasado em seu exemplo, consegui remover o hash da seguinte maneira:

sed -i '/^.*arquivo1.sh/s/#//g' /etc/crontab


Obrigado pela ajuda maiconfaria  !
Registrado
Páginas: [1]   Ir para o Topo
  Imprimir  
 
Ir para:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2006-2009, Simple Machines XHTML 1.0 Válido! CSS Válido!