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 16:02:07 +0000

 Eu poderia dizer que usei o cut e uns ifs pq decidi usar uma
solução 100% bash mas na verdade, apesar de saber (desconfiar) que
o awk é uma ferramenta de grande poder, só uso awk para imprimir
colunas, com "awk '{print $X}'.
 flw
 On Ter 12/01/10 13:51 , Andrea VB address@hidden sent:
 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 
 >
 > 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 [2] 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  # ??? 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.
 ------------------------------------

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

---------------------------------------------------------------------
 Esta lista é moderada de acordo com o previsto em
http://www.listas-discussao.cjb.net [4]

---------------------------------------------------------------------
 Servidor Newsgroup da lista: news.gmane.org
 Grupo: gmane.org.user-groups.programming.shell.brazil
 Links do Yahoo! Grupos
  Para visitar o site do seu grupo na web, acesse:
     http://br.groups.yahoo.com/group/shell-script/ [5]
  Para sair deste grupo, envie um e-mail para:
     address@hidden [6]
  O uso que você faz do Yahoo! Grupos está sujeito aos:
     http://br.yahoo.com/info/utos.html [7]


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



reply via email to

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