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

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

Re: [shell-script] (unknown)


From: Tiago Barcellos Peczenyj
Subject: Re: [shell-script] (unknown)
Date: Fri, 17 Aug 2007 15:02:53 -0300

O "problema" do grep, nesse caso, é vc substituir uma expressão numérica por
uma literal.

para um caso de 90 % ou superior, por exemplo, a expressão parece ser
simples.

cat sql
ASD1 1
ASD2 ,02
ASD3 60,3
ASD4 90
ASD5 90,1
ASD6 98,02
ASD7 100

grep -E '(100|9[0-9])(,[0-9]+)?$' sql
ASD4 90
ASD5 90,1
ASD6 98,02
ASD7 100

porem, se eu quero algo acima de 72%, pode dificil de construir uma ER,
ainda mais se este valor venha de um parâmetro externo. IMHO eu prefiro uma
comparação matemática, mas não preciso ficar limitado a ela.

Por exemplo, posso usar apenas o sed (e posso ter até alguma vantagem em
termos de performance, não sei, estou chutando).

sed '/\(100\|9[0-9]\)\(,[0-9]\+\)\?$/!d' sql
ASD4 90
ASD5 90,1
ASD6 98,02
ASD7 100

On 8/17/07, Info Suporte - Rodrigo Nery <address@hidden> wrote:
>
>   O comando grep pode ser utilizado também para esta necessidade, veja:
>
> /tmp >grep "[9][0-9],[0-9][0-9]$" <nome_do_arquivo>
> SYSAUX 225280.00 8384.00 216896.00
> 3,72 96,28
> SYSTEM 307200.00 22400.00 284800.00
> 7,29 92,71
>
> -----Mensagem original-----
> De: Info Suporte - Rodrigo Nery
> Enviada em: sexta-feira, 17 de agosto de 2007 11:27
> Para: 'address@hidden<%27shell-script%40yahoogrupos.com.br>
> '
> Assunto: RES: [shell-script] (unknown)
>
> Utilize o comando do awk abaixo.
>
> awk '{if ($NF > 90) {print $0}}' <nome_do_arquivo>
>
> TABLESPACE TOTAL KB LIVRE KB OCUPADO KB
> % LIVRE % OCUPADO
> SYSAUX 225280.00 8384.00 216896.00
> 3,72 96,28
> SYSTEM 307200.00 22400.00 284800.00
> 7,29 92,71
>
> Rodrigo
>
> -----Mensagem original-----
> De: ikami [mailto:address@hidden <ikamig%40yahoo.com.br>]
> Enviada em: sexta-feira, 17 de agosto de 2007 11:10
> Para: address@hidden <shell-script%40yahoogrupos.com.br>
> Assunto: [shell-script] (unknown)
>
>
> Ola pessoal!
> Estou precisando fazer um script para tratar um arquivo. Estou tentando
> fazer isso para terminar um plugin para o nagios.
> Seguinte, preciso pegar um arquivo (lista de tabelas de banco) que meu
> banco
> de dados gera e verificar se alguma tabela esta estourando ou nao (tem
> alguma esta com a utilizacao acima de 90%).
> O aquivo ter algumas sujeiras no comeco e no final e no meio tem as
> informacoes que tenho q tratar.
> Estou mandando um exemplo do arquivo em anexo porque colando aqui a
> formatacao dele muda.
> Na ultima coluna ele mostra a % ocupada da tabela. São estes campos que
> quero pegar.
> A idéia eh ler essa coluna e quando achar um valor maior ou igual a 90 ele
> me retornar a linha inteira
>
> Tentei ler somente essa coluna com o comando cut mas nao tive sucesso.
> Acho
> q pq ele nao está reconhecendo as colunas. Entao, lendo alguns posts
> passados da lista descobri o comando expand e unexpand e tentei colocar
> algumas tabulacoes entre as linhas para depois fazer o cut na coluna. Nao
> consegui tb.
>
> Resumindo. Estou travado ainda na ideia de ler essa ultima coluna!
>
> Grato.
>
> Flickr agora em português. Você clica, todo mundo vê.
> http://www.flickr.com.br/
> ----------
>
> SQL*Plus: Release 10.1.0.4.0 - Production on Tue Aug 14 16:42:33 2007
>
> Copyright (c) 1982, 2005, Oracle. All rights reserved.
>
> Enter user-name:
>
> Connected to:
>
> Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
>
> With the Partitioning, OLAP and Data Mining options
>
> SQL> SQL> SQL> SQL> SQL> SQL> 2 3 4 5 6 7 8 9 10
> 11 12 13 14 15
>
> TABLESPACE TOTAL KB LIVRE KB OCUPADO KB
> % LIVRE % OCUPADO
>
> ------------------------------ ------------- ------------- -------------
> ---------- ----------
>
> ADMINISTRATI_DAT_01 102400.00 101760.00 640.00
> 99,38 ,63
>
> ADMINISTRATI_IDX_01 102400.00 102336.00 64.00
> 99,94 ,06
>
> AUDITORIA_DAT_01 102400.00 100608.00 1792.00
> 98,25 1,75
>
> CONFIGURACAO_DAT_01 102400.00 102272.00 128.00
> 99,88 ,13
>
> CONFIGURACAO_IDX_01 102400.00 102336.00 64.00
> 99,94 ,06
>
> FRAMEWORK_DAT_01 102400.00 102272.00 128.00
> 99,88 ,13
>
> FRAMEWORK_IDX_01 102400.00 102336.00 64.00
> 99,94 ,06
>
> HELP_DAT_01 102400.00 98304.00 4096.00
> 96 4
>
> HELP_IDX_01 102400.00 102336.00 64.00
> 99,94 ,06
>
> INTERACAO_USR_DAT_01 102400.00 99840.00 2560.00
> 97,5 2,5
>
> INTERACAO_USR_IDX_01 102400.00 102336.00 64.00
> 99,94 ,06
>
> SEGURANCA_DAT_01 102400.00 102272.00 128.00
> 99,88 ,13
>
> SEGURANCA_IDX_01 102400.00 102336.00 64.00
> 99,94 ,06
>
> TREINAMENTO 102400.00 35584.00 66816.00
> 34,75 65,25
>
> SYSAUX 225280.00 8384.00 216896.00
> 3,72 96,28
>
> SYSTEM 307200.00 22400.00 284800.00
> 7,29 92,71
>
> UNDOTBS1 204800.00 195072.00 9728.00
> 95,25 4,75
>
> USERS 124160.00 47616.00 76544.00
> 38,35 61,65
>
> 18 rows selected.
>
> SQL> Disconnected from Oracle Database 10g Enterprise Edition Release
> 10.2.0.3.0 - Production
>
> With the Partitioning, OLAP and Data Mining options
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> ----------------------------------------------------------
> 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<shell-script-unsubscribe%40yahoogrupos.com.br>
> ----------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em
> http://www.listas-discussao.cjb.net
> ----------------------------------------------------------
> Servidor Newsgroup da lista: news.gmane.org
> Grupo: gmane.org.user-groups.programming.shell.brazil
>
> Links do Yahoo! Grupos
>
>  
>



-- 
Tiago B Peczenyj
Linux User #405772

http://peczenyj.blogspot.com/


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



reply via email to

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