[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: comando awk com print
From: |
Luiz |
Subject: |
Re: comando awk com print |
Date: |
Mon, 13 Feb 2012 10:27:12 -0000 |
User-agent: |
eGroups-EW/0.82 |
Ola Julio
O que estou tentando fazer é me conectar em outro servidor através do
comando 'ssh' e executar o comando 'uptime' capturando as tres ultimas colunas
que é resultado do load average.
Executando o comando pelo prompt obtenho o resultado.
O problema esta em executar este comando atraves de um programa pascal
invocando o shell.
Tentei utilizar o que você me recomendou mas não obtive sucesso.
Consigo executar o comando utilizando o cut
uptime | cut -d ":" -f5
Isto funciona quando o resultado do comando uptime é:
08:25:00 up 16 days, 21:12, 11 users, load average: 0.03, 0.03, 0.00
Mas quando o resultado é
08:05:00 up 16 days, 15 min, 11 users, load average: 0.03, 0.03, 0.00
tenho que utilizar o comando uptime | cut -d ":" -f4
Por isso estou tentado com o comando awk para extrair as ultimas colunas. Mas
o awk junto com print esta dificultando as coisas.
Não sei se consegui ser claro no descrito acima.
Se puder me ajudar, é mais um desafio para mim porque com cut esta
funcionado.
Weber
--- Em address@hidden, "Julio C. Neves" <julio.neves@...> escreveu
>
> Fala Luiz,
> não vai ser fácil explicar, mas tentarei, mas antes de mais nada já vou
> lugo dizendo: nunca, eu disse NUNCA! use 'sh ...' Vc tem um tremendo
> interpretador chamado Bash. Pq criar uma instância de uma tytyca por cima
> dele? Nunca faça isso! Se necessário, que não é o caso, faça 'bash -c ...'
>
> Bem vamos lá:
> 0 - O trecho que vc fez ''uptime | awk '{print $10,$11,$12}''' está furado,
> pq vc abriu aspas, abriu apóstrofos e fechou apóstrofos, fechou apóstrofos
> e novamente fechou apóstrofos.
> 1 - O awk requer que seu escopo esteja entre apóstrofos;
> 2 - Pela tua sintaxe (que desconheço o que seja) vc aspas antes do uptime e
> depois do awk, isso significa que se vc colocar novas aspas ou apóstrofos
> para o famigerado sh -c, vc estará fechando-os e reabrindo-os no meio do
> cmd e deixando um pedaço exposto ao shell.
>
> Não sei se me fiz claro, mas as coisas ficarão certas se vc trocar os 2
> últimos apóstrofos por uma aspa (isso tem singular?).
>
> Abcs,
> Julio
> *Já foi lançado "Bombando o
> Shell<http://www.brasport.com.br/index.php?dispatch=products.view&product_id=666>
> ". *
> *Show **de interfaces gráficas sob Shell!*
> *
> *
>
>
>
> Em 10 de fevereiro de 2012 22:24, Luiz <weberlf@...> escreveu:
>
> > **
> >
> >
> > Caros da lista
> >
> > Se executar o comando abaixo,
> > ssh -o ConnectTimeout=10 -p 5960 suporte@... ''uptime | awk
> > '{print $10,$11,$12}'''
> >
> > Obtenho o resultado
> >
> > 0.00, 0.00, 0.00
> >
> > Mas se executar o comando atraves de um programa pascal
> >
> > sh -c "ssh -o ConnectTimeout=10 -p 5960 suporte@... ''uptime |
> > awk '{print $10,$11,$12}'''"
> >
> > Obtenho 0 1 2
> >
> > Se executar com aspas simples
> >
> > sh -c 'ssh -o ConnectTimeout=10 -p 5960 suporte@... ''uptime |
> > awk '{print $10,$11,$12}''''
> >
> > Obtenho o erro
> >
> > awk: cmd. line:1: {print
> > awk: cmd. line:1: ^ unexpected newline or end of string
> >
> > Poderiam me auxiliar ?
> >
> > Weber
> >
> >
> >
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>