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

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

Re: [shell-script] Duvida simples - validando dados com awk


From: microbiu
Subject: Re: [shell-script] Duvida simples - validando dados com awk
Date: Tue, 12 Jan 2010 13:05:23 +0000

 Bom dia!
 Testei o que eu programei abaixo e funcionou:
  ric@DESKTOPHOME:~$ cat nhanha.sh 
 # considerem as variáveis $nome, $GID_MIN e $GID_MAX já definidas:
 # $nome é um nome de usuário do sistema.
 # GID_MIN = 15000, GID_MAX = 15999.
 nome="eric"
 GID_MIN="15000"
 GID_MAX="15999"
 for proj in `groups $nome | cut -d ":" -f2`
 do
 # descobrir se proj-id é maior do que 15000
 # se sim, imprimir o nome do projeto (no awk) e depois verificar os
tickets
 GROUPID=$(getent group | grep "^$proj:" | cut -d":" -f3)
 # ??? aqui mora meu problema
 # o trecho abaixo (3 linhas) deve ser executado somente se o GID
estiver entre 15000 e 15999
     if [ $GROUPID -gt 15000 ] ;then 
         if [ $GROUPID -lt 15999 ]; then
         tprojdb="/home/trac/"$proj"/db/trac.db"
         echo "select id,status,summary from ticket where
nome=='$nome'
         and status!='closed';" | sqlite3 $tprojdb
         echo ""
         fi
     fi
 done
  sds
 Eric
 On Ter 12/01/10 08:46 , Andrea VB address@hidden sent:
        Olá, pessoal!
 Estou com um probleminha que acredito ser de simples solução,
porém
 não consigo alcançá-la...
 Tenho em meu sistema alguns grupos "especiais", com GIDs maiores do
 que 15000 e menores do que 15999 (tais grupos são utilizados em
 projetos no Trac).
 Cada usuário pertence a um ou mais grupos "especiais", mas também
a
 outros grupos (como 'users', 'voice' etc).
 Cada grupo "especial" possui um diretório "/home/trac/$proj", mas
isso
 não ocorre com users, voice etc...
 Eu preciso coletar informações sobre cada projeto para um
determinado usuário.
 Se o usuário joao está nos grupos users, wheel, projeto1, projeto2
e
 novoprojeto, preciso coletar tais informações dos grupos projeto1,
 projeto2 e novoprojeto.
 Estou tentando resolver o problema com AWK, mas aceito outras
soluções
 (sed, bashismos, qq coisa que resolva).
 O meu problema é que, embora eu consiga descobrir se o grupo está
na
 faixa de GID desejada, eu não consigo tratar a resposta... Alguém
 poderia me ajudar com isso, por favor?
 Segue abaixo o que eu tenho...
 Muito obrigada,
 Andrea VB
 # considerem as variáveis $nome, $GID_MIN e $GID_MAX já definidas:
 # $nome é um nome de usuário do sistema.
 # GID_MIN = 15000, GID_MAX = 15999.
 for proj in `groups $nome`
    do
      # descobrir se proj-id é maior do que 15000
      # se sim, imprimir o nome do projeto (no awk) e depois
verificar os tickets
      getent group | grep $proj | awk -F: "{if (($3 >= $GID_MIN) &&
 ($3            Atividade nos últimos dias:     
    *       Novos usuários [2]       3                              
                     

             Visite seu Grupo [3]     Adicionar um novo tópico [4]  
                        
---------------------------------------------------------------------
 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.listas-discussao.cjb.net [5]

---------------------------------------------------------------------
 Servidor Newsgroup da lista: news.gmane.org
 Grupo: gmane.org.user-groups.programming.shell.brazil
                                                                     
  http://yahoo.zap.com.br/imoveis/busca-de-imoveis-simples.aspx [6]"
target="_blank">Anuncie seu imóvel no Y!Imóveis e feche ótimos
negócios!                                                      [7]  
Trocar para: Só Texto, Resenha Diária • Sair do grupo •
Termos de uso [8]                                 .     
         


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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