Você pode fazer assim:

# variavel=`ps -ef  |grep "processo-x" |awk '{print $1}'| xargs`

Com o xargs você pode pegar valores do stdin e passá-los como argumento para 
outros programas, sem nenhum argumento ele faz exatamente o que você quer, mas 
basicamente você consegue fazer muita coisa utilizando esta combinação, para 
arumentos posicionais você pode utilizar, por exemplo: xargs -I{} echo {}, 
significa que para cada valor ele irá executar um "echo" com aquele valor como 
argumento, não utilizando esta opção ele irá passar tudo como argumento, como o 
exemplo acima.

A[]'s

--- Em seg, 18/4/11, Jackson Rodrigo Braga <[email protected]> escreveu:

De: Jackson Rodrigo Braga <[email protected]>
Assunto: Ajuda com awk
Para: "Debian List" <[email protected]>
Data: Segunda-feira, 18 de Abril de 2011, 10:18

Bom dia a todos.
Preciso de uma ajudinha rapida.
Tenho como usar o awk para alem de mostrar uma coluna, também mostrar apenas 
uma linha dos resultados?
 
Segue exemplo:
 
# ps -ef  |grep "processo-x" |awk '{print $1}'
 
Porém o "processo-x" possui 4 instancias, entao a saida é: 
 

# ps -ef  |grep "processo-x" |awk '{print $1}'
user1
user1
user1
user1
# 
 
Mas como preciso usar a saida desse comando para criar uma variavel que 
posteriormente será usada numa condição de teste, eu precisaria de um valor só. 
Da forma acima a variavel fica:
 
echo $variavel
user1 user1 user1 user1
 
Em resumo, preciso de um paramentro do awk para que alem da coluna 1, ele 
também só mostre a primeira linha.
 
Alguem pode me ajudar?

Responder a