[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] dúvida sed, inserção em /etc/passwd
From: |
Mauricio Vieira |
Subject: |
Re: [shell-script] dúvida sed, inserção em /etc/passwd |
Date: |
Mon, 1 Jul 2002 23:50:50 -0300 |
User-agent: |
Mutt/1.2.5i |
Saudacoes,
Solucionei assim:
# Inserção da matrÃcula no aliases
ALIASES=/etc/aliases
NEWALIASES=/usr/bin/newaliases
SCRIPT_SED=.apenda.sed
# Verifica se há a matricula no aliases
if ! grep "$MATRICULA" $ALIASES &>/dev/null
then
# Criação dinâmica do script sed
echo "/^#MATRICULA/a\\
${MATRICULA}:${LOGIN}" > $SCRIPT_SED
# Inclusão do alias matrÃcula apontando pro login
cp $ALIASES ${ALIASES}.O
cat $ALIASES.O | sed -f $SCRIPT_SED > $ALIASES
$NEWALIASES
rm $SCRIPT_SED
fi
Usei sed -f pq shebang bin sed não funcionou por algum motivo sedicioso
desconhecido.
Em Sat, 29 Jun 2002, Ulysses Almeida escreveu:
> Ola,
>
> vou tentar explicar, o estou (tetando)? fazer!
>
> cat aliases |sed -e '/^#Aliases das
> matriculas/h;x;/\(^$\|\n\n\)/bnext;x;H;s/^$/novo:nome\n/;bfim;:next;x;/^$/h;:fim'
>
> /^#Aliases das matriculas/h => Qndo acha o padrao, o "h" copia a linha para
> o buffer temporario do sed.
>
> x => troca a linha, pelo buffer temporario.
>
> /\(^$\|\n\n\)/bnext => se acha o padrao, vai para "next", como eu
> troquei o buffer pela linha, o que estou
> fazendo aki eh verificando se eu tenho o buffer
> vazio ou duas quebras de linha no buffer.
>
> x => troco novamente a linha pelo buffer, na verdade, volto como
> estava antes!!
>
> H => Adiciono a linha atual, ao buffer do sed. Eu soh passarei por
> aki, qndo jah tiver algo no buffer (Já achei o comentario que
> estou procurando).
>
> s/^$/novo:nome\n/ => Troco a linha em branco, pela nova entrada. Aqui
> tambem passarei somente qndo tiver algo no
> buffer (por causa do bnext la atraz). E eu soh
> troco a linha, depois de adicionala ao buffer,
> portanto qndo haver essa troca, eu já terei duas
> quebras de linha no buffer (\n\n).
>
> bfim => Caso eu tenha feito a troca, nao preciso fazer mais nada, e
> vou para o "fim".
>
> :next => Esse eh o label next, eh aqui que eu venho para com o bnext.
>
> x => troco novamente o buffer pela linha (volto ao normal), pois se
> estamos aki, nao passamos pelo segundo "x"! =/
>
> /^$/h => Isso, creio que diminua o processamento, pois estou "limpando
> o buffer (jogo uma linha em branco no buffer), o que diminui
> a busca pelo "\n\n" =/
>
> :fim => Esse eh o label fim, eh aqui que somos mandado qndo temos
> bfim.
>
> Bom, essa foi minha tentativa de explicacao, espero que nao tenha te
> confundido mais.
>
> Provavelmente tem uma forma mais simples e elegante de se fazer
> (aurelio?), mas essa ae funcionou nos meus testes!
>
> []s
>
> PS: Creio que podemos continuar essa discussao especifica na lista
> sed-br, pois tah comecando a perder as caracteristicas de
> shell-script! Estou errado?
>
> On Fri, Jun 28, 2002 at 11:36:48PM -0300, Mauricio Vieira wrote:
> > Sobre a outra solução + complicada, vou dar uma lida pra entender o q
> > significa o /b x e H
> >
> > Valeu.
> > Em Fri, 28 Jun 2002, Ulysses Almeida escreveu:
> >
>
> --
> .~. Ulysses Almeida
> / V \ address@hidden
> / ( ) \ Seja livre, use GNU/Linux!
> ^^-^^
>
>
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de programação, como
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
> aviso.
> ---------------------------------------------------------------------
> Sair da lista: address@hidden
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em
> http://www.listasdiscussao.cjb.net
> ---------------------------------------------------------------------
>
>
> Seu uso do Yahoo! Grupos é sujeito às regras descritas em:
> http://br.yahoo.com/info/utos.html
>
--
Mauricio B. C. Vieira - <address@hidden>
Estudante de Ciência da Computação - UFBA
GAVRI - Grupo dos Administradores Voluntários da Rede de Informática
http://gavri.im.ufba.br
Instituto de Matemática
http://www.im.ufba.br
- Re: [shell-script] dúvida sed, inserção em /etc/passwd,
Mauricio Vieira <=