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

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

Duvida simples - validando dados com awk


From: Andrea VB
Subject: Duvida simples - validando dados com awk
Date: Tue, 12 Jan 2010 08:46:43 -0200

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 <= $GID_MAX)) print \$1 }"
     # ??? aqui mora meu problema
     # o trecho abaixo (3 linhas) deve ser executado somente se o GID
estiver entre 15000 e 15999
     tprojdb="/home/trac/"$proj"/db/trac.db"
     echo "select id,status,summary from ticket where nome=='$nome'
and status!='closed';" | sqlite3 $tprojdb
    echo ""
   done


-- 
Andrea VB
Please, don't CC me when replying to me on the lists, and use BCC when
sending mass e-mails.


reply via email to

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