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

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

Re: [shell-script] Shell Script


From: Mateus Caruccio
Subject: Re: [shell-script] Shell Script
Date: Mon, 12 May 2003 21:33:34 +0800

    ola a todos,

  Este é meu primeiro post na lista. Gostei de saber que existia uma lista 
sobre shell scripting, sou fanatico por isso ;)

  Sobre o teu problema, voce deve pensar ele em partes.
Voce precisa de um valor em uma linha:

 1 - primeiro, pegue a linha q contem o valor
 2 - segundo, pegue o valor que precisa

Para essas duas tarefas deve utilizar duas ferramentas distintas (existem 
outras formas mas esta eh a mais simples de entender):

- pegar um linha: use o grep

# grep "Mem:" /proc/meminfo
Mem:  29511680 28192768  1318912 10551296 17559552
#

- pegar um valor em uma linha: use o awk, sed, cut, etc...
# grep "Mem:" /proc/meminfo | awk '{print $2}'
29511680
#

ou

# grep "Mem:" /proc/meminfo | sed -ne 's/^\(Mem:[ ]*\)\([0-9]*\).*/\2/p'
29511680
#

Algumas ferramentas utilizam Expressoes Regulares (http://aurelio.net/er/) para 
procurar por um padrao em uma linha (nesse caso, o padrão é qualquer linha que 
comece com "Mem:". Isso duispensa o uso de outro programa para pegar uma linha.

# sed -ne 's/^\(Mem:[ ]*\)\([0-9]*\).*/\2/p' meminfo
29511680
#

ou

# awk '/^Mem:/ {print $2}' meminfo
#

existem vaaaarias maneiras...escolha a sua :)

sugiro tmbm a leitura dos livros "Sed e AWK" e "Mastering Regular Expressions", 
ambos da O'Reilly, sao muito esclarescedores.



    Mateus Caruccio



----- Original Message -----
From: "Vitor Alexandre S. Marinho" <address@hidden>
Date: Mon, 12 May 2003 10:03:27 -0300
To: "Lista Shell Script" <address@hidden>, Lista_de_Discussão_Linux_Goias 
<address@hidden>, "Lista Conectiva Linux" <address@hidden>
Subject: [shell-script] Shell Script

> Pessoal, como posso pegar uma determinada informação que esta em uma linha.
> Exemplo do que quero:
> 
> Linux_01:/proc# cat meminfo
>         total:    used:    free:  shared: buffers:  cached:
> Mem:  29511680 28192768  1318912 10551296 17559552  5042176
> Swap:        0        0        0
> MemTotal:     28820 kB
> MemFree:       1288 kB
> MemShared:    10304 kB
> Buffers:      17148 kB
> Cached:        4924 kB
> SwapTotal:        0 kB
> SwapFree:         0 kB
> 
> Eu gostaria de obter o valor 29511680
> 
> Se eu der este comando:
> 
> Linux_01:/proc# cat meminfo | cut -c7-15
>   total:
> 29511680
>        0
> al:     2
> e:
> red:    1
> s:      1
> :
> tal:
> ee:
> 
> Eu consigo ter o valor mas vem de todas as linhas. Como eu poderia ter
> somente daquela linha? Que me daria o resultado desejado.
> Valeu
> Vitor
> 
> 
> 
> ---------------------------------------------------------------------
> 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.listasdiscussao.cjb.net
> ---------------------------------------------------------------------
>  
> 
> Seu uso do Yahoo! Grupos é sujeito às regras descritas em: 
> http://br.yahoo.com/info/utos.html 
> 
> 



# ########################################################
# Mateus de Oliveira Caruccio <caruccio at operamail.com>
# Linux User #183552 - UIN #37364320
# Vim, vi e matei o Emacs !



    
-- 
____________________________________________
http://www.operamail.com
Get OperaMail Premium today - USD 29.99/year


Powered by Outblaze


reply via email to

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