[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [shell-script] Shell Script,
Mateus Caruccio <=