Em 08/11/07, Krishnamurti L. L. V. Nunes<[EMAIL PROTECTED]> escreveu: > Em 08/11/07, Denis<[EMAIL PROTECTED]> escreveu: > > E ai pessoal, blz? > > > > > > bom, seguinte quero substituir isso: > > > > jjunior:$1$VyzzTIwz$/y750LY/2CQyKMD8ONlQY/:13816:0:99999:7 > > > > > > por isso: > > > > jjunior:$2a$10$EA8yiucQjmLCZN/ogamxA.dsrDOGoo.gaytWYhbvCuUB/1TESTE > > > > isso eh p sincronizar o password do usuario entre 3 maquinas pega o > > mais recente e substitui o mais velho. > > > > fiz um script pra isso que esta ai abaixo, mas o problema sao as > > barras dentro da string do sed. Alguem sabe como contornar este > > problema? > > > > #!/bin/bash > > #programa para sincronizacao dos passwordsdos usuarios autor denis. > > > > for i in `diff -y --suppress-common-lines /etc/shadow > > /etc/shadow_new|tr -d [:blank:]|tr "|" "%"`; > > do > > echo atualizando o valor: > > echo $i > > read > > antigo=`echo $i |cut -d "%" -f 2` > > novo=`echo $i |cut -d "%" -f 1` > > echo "sera colocado $novo no lugar de $antigo no arquivo > > /etc/shadow_new \n" > > echo "Prosseguir?" > > read > > sed -i "s/$antigo/$novo/g" /etc/shadow_new > > done; > > > > > > tentei colocar as strings entr 'xx' e entre "xx" mas nao foi. > > > > valeu! > > > > > > Simplesmente troque o separador do sed. > O sed aceita vários caracteres como separador dos seus campos, você > pode fazer por exemplo assim: > > sed -i "s#$antigo#$novo#g" /etc/shadow_new > > Desse jeito você consegue trabalhar facilmente com strings que > contenham barras. > > Isso vale também para a substituição do vim. > > -- > Krishnamurti Lelis Lima Vieira Nunes > > Opa! Perfeito!
Testado e funcionando! Valeu, amigo. Um abraço, Denis.

