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: Andrea VB
Subject: Re: [shell-script] Duvida simples - validando dados com awk
Date: Tue, 12 Jan 2010 13:51:25 -0200

Oi, Eric,

muito obrigada, funcionou perfeitamente.

Eu estava tentando TANTO usar o awk que deixei passar que poderia
haver uma solução mais direta.

Abração!

2010/1/12 <address@hidden>
>
> 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 <= $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.
>
> 



--
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]