É possível trazer somente um parâmetro em um comando?

1. É possível trazer somente um parâmetro em um comando?

Luis Matheus
lmatheus712

(usa Ubuntu)

Enviado em 13/10/2014 - 09:25h

Bom dia,

Estou usando o OpenSuse 9.2 para desenvolver uma aplicação para um cliente, com isso, preciso trazer informações da maquina sem usar o uma conta root, porem, preciso separar as informações, por exemplo:
Preciso trazer informações sobre a placa mãe, porem tenho que trazer as informações especificas e separadas, pois caso ele queira uma unica informação sobre determinado assunto preciso passar. Com isso, estou usando o comando "cat /etc/issue", mas ele me traz varias informações, uteis e inuteis, que preciso separar e essa é minha duvida, será que consigo, usando esse comando, trazer somente alguns parâmetros como resposta?

Obrigado desde já!


  


2. Re: É possível trazer somente um parâmetro em um comando?

Luis Matheus
lmatheus712

(usa Ubuntu)

Enviado em 13/10/2014 - 09:41h

lmatheus712 escreveu:

Bom dia,

Estou usando o OpenSuse 9.2 para desenvolver uma aplicação para um cliente, com isso, preciso trazer informações da maquina sem usar o uma conta root, porem, preciso separar as informações, por exemplo:
Preciso trazer informações sobre a placa mãe, porem tenho que trazer as informações especificas e separadas, pois caso ele queira uma unica informação sobre determinado assunto preciso passar. Com isso, estou usando o comando "cat /etc/issue", mas ele me traz varias informações, uteis e inuteis, que preciso separar e essa é minha duvida, será que consigo, usando esse comando, trazer somente alguns parâmetros como resposta?

Obrigado desde já!


Gente, acabei trocando os comandos, o comando que traz varias parametros, nesse caso sobre a CPU, que é o do meu exemplo, é "cat /proc/cpuinfo" e não "cat /etc/issue".


3. É possível trazer somente um parâmetro em um comando?

morvan bliasby
Morvan

(usa Fedora)

Enviado em 13/10/2014 - 09:56h

Bom dia.
Sim.
Você pode se utilizar basicamente de
grep 
e de
cut 
para filtrar e recortar os campos necessários. Como exemplo, abaixo, testo o número de núcleos da minha CPU e retorno o valor:
nuc=`cat /proc/cpuinfo | grep -i cores | cut -f2 -d: | sort -bu`
echo $nuc
. Veja o manpage do comando "cut" e você terá muitas opções de delimitação, corte e filtro de campos, bem como dê também uma olhadela no "grep".
Qualquer dúvida, pergunte e tentaremos ajudar.
Morvan, Usuário Linux #433640. Seja Legal; seja Livre. Use Linux.


4. Re: É possível trazer somente um parâmetro em um comando?

Luis Matheus
lmatheus712

(usa Ubuntu)

Enviado em 14/10/2014 - 09:11h

Morvan escreveu:

Bom dia.
Sim.
Você pode se utilizar basicamente de
grep 
e de
cut 
para filtrar e recortar os campos necessários. Como exemplo, abaixo, testo o número de núcleos da minha CPU e retorno o valor:
nuc=`cat /proc/cpuinfo | grep -i cores | cut -f2 -d: | sort -bu`
echo $nuc
. Veja o manpage do comando "cut" e você terá muitas opções de delimitação, corte e filtro de campos, bem como dê também uma olhadela no "grep".
Qualquer dúvida, pergunte e tentaremos ajudar.
Morvan, Usuário Linux #433640. Seja Legal; seja Livre. Use Linux.


então, eu posso trocar o parâmetro para corte do cut? ao invés de usar os ":" eu posso usar uma palavra ou parte de uma palavra?



5. É possível trazer somente um parâmetro em um comando?

morvan bliasby
Morvan

(usa Fedora)

Enviado em 14/10/2014 - 11:51h

Bom dia.
Sim, pode.
Mas eu aconselharia você a fazer a filtragem direto no "grep":
grep -i minhapalavra 

O parâmetro "-i" torna o grep case insensitivo, ou seja, retorna ocorrências, sejam caixa alta, baixa, ou mista.
O "cut" utiliza os parâmetros "field" (-f) e delimitador (-d) para justamente cortar com aqueles critérios. Então, para recuperar informação, primeiro criterie com o grep e depois delimite com o cut.
Qualquer dúvida, pode postar.
Morvan, Usuário Linux #433640. Seja Legal; seja Livre. Use Linux.


6. dúvida

Paulo Cesar Morais de Oliveira
paulocmo

(usa Debian)

Enviado em 30/08/2016 - 09:52h

Morvan escreveu:

Bom dia.
Sim, pode.
Mas eu aconselharia você a fazer a filtragem direto no "grep":
grep -i minhapalavra 

O parâmetro "-i" torna o grep case insensitivo, ou seja, retorna ocorrências, sejam caixa alta, baixa, ou mista.
O "cut" utiliza os parâmetros "field" (-f) e delimitador (-d) para justamente cortar com aqueles critérios. Então, para recuperar informação, primeiro criterie com o grep e depois delimite com o cut.
Qualquer dúvida, pode postar.
Morvan, Usuário Linux #433640. Seja Legal; seja Livre. Use Linux.


Aproveitando a dica, desejo verificar a informação da temperatura do processador,

Tem o #sensors

mas ele traz várias informações, gostaria de extrair as mesmas para colocar em um que me avisaria se estiver acima de determinada temperatura

Grato


7. Re: É possível trazer somente um parâmetro em um comando?

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 30/08/2016 - 11:21h

lmatheus712 escreveu:
consigo, usando esse comando, trazer somente alguns parâmetros como resposta?


vc já experimentou usando o dmidecode ???
https://www.vivaolinux.com.br/dica/Listando-informacoes-sobre-o-hardware-com-o-comando-dmidecode-atr...


___________________________________________________________________________________________
" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"


8. Usar um comando com filtro

morvan bliasby
morvan

(usa Fedora)

Enviado em 30/08/2016 - 11:35h

paulocmo escreveu:

Morvan escreveu:

Bom dia.
Sim, pode.
Mas eu aconselharia você a fazer a filtragem direto no "grep":
grep -i minhapalavra 

O parâmetro "-i" torna o grep case insensitivo, ou seja, retorna ocorrências, sejam caixa alta, baixa, ou mista.
O "cut" utiliza os parâmetros "field" (-f) e delimitador (-d) ...


Aproveitando a dica, desejo verificar a informação da temperatura do processador,

Tem o #sensors

mas ele traz várias informações, gostaria de extrair as mesmas para colocar em um que me avisaria se estiver acima de determinada temperatura

Grato

Tu podes utilizar o cat.../sensors e criar um cron com uma comparação do valor retirado com os filtros (cut e grep) e tomando decisão com condicionais( if myTemp gt CTemp then... . Seria o algoritmo.



Morvan, Usuário GNU-Linux #433640. Seja Legal; seja Livre. Use GNU-Linux.


9. Re: É possível trazer somente um parâmetro em um comando?

Thiago Martins
thinomar

(usa Debian)

Enviado em 30/08/2016 - 12:17h

Há diversas formas de se filtrar apenas o conteúdo desejado. Comando grep, cut, awk, sed, etc. Por exemplo, exemplificando o comando do morvan:
cat /proc/cpuinfo | grep -i cores | cut -f2 -d: | sort -bu 

Onde ele utiliza o cat para ler o arquivo /proc/cpuinfo, o grep -i para filtrar a palavra "cores", ignorando o case, o cut -f2 -d: para pegar apenas o segundo campo com delimitador ":" e o sort -bu para pegar uma única linha.

Vamos converter para awk:
awk 'BEGIN{IGNORECASE=1} /cores/ && !linha {linha = 1 ; print $(NF)}' /proc/cpuinfo 

No final do comando temos o nome do arquivo. BEGIN{IGNORECASE=1} pré-define que o awk vai ignorar o case nas comparações e buscas e equivale ao -i do grep. O /cores/ && !linha diz que só é para executar o restante do comando nas linhas que possuirem a palavra "cores" e quando a variável "linha" estiver vazia ou nula, o que faz o "/cores/" equivaler ao grep e o "!linhas" ao sort -bu. linha = 1 atribui um valor a variável "linha", para que após a primeira linha válida, as outras não passem mais pela validação que acabei de explicar. Por fim, o print $(NF) imprime o último campo, que é o que possui o valor buscado, visto que a variável reservada do awk NF equivale ao número total de campos.

Como você pôde ver, há diversas formas de fazer a mesma coisa e de filtrar conteúdo, basta explorá-las até encontrar a que mais te agrade e mandar ver.