Entrar
Usuário novo? Cadastre-se
shell-script · Lista brasileira sobre Linux Shell Script

Informações sobre o grupo

  • Associados: 2411
  • Categoria: Linux
  • Criado em: Jun 5, 2000
  • Idioma: Inglês
? Você já é um associado? Entre no Yahoo!

Dicas

Você sabia...
Você pode receber várias mensagens em um único e-mail. Basta configurar suas opções de entrega de e-mail.

Mensagens

  Ajuda
Avançado
comando awk com print   Lista de mensagens  
Responder Mensagem #34128 de 34536 |
Re: [shell-script] Re: comando awk com print

Ô Luiz,
eu escrevi 10 km de resposta e vc só leu 1 m! Usei o cut pq acho um absurdo
usar o awk para cortar. É como matar mosquito com bazuca.

O problema da sua linha da comandos, está no uso de aspas e apóstrofos.
Está errado. Vc trocou uma aspa por 2 apóstrofos. Eu apóstrofo uma cerveja
como o erro está aí. ;)

Mas se vc quiser fazer funcionar com cut, então faça:

$ uptime
08:57:50 up 22 days, 14:14, 4 users, load average: 0.01, 0.25, 0.28
$ uptime | tr -s ' ' | cut -f11- -d' '
0.01, 0.25, 0.28

OBS: Antes fiz um uptime completo, só para deixar usuários rWin com água na
boca... 22 dias sem desligar o notebook. Se fosse rwin, em menos de 5 dias
já teria carcomido as próprias entranhas... ;)

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 13 de fevereiro de 2012 08:27, Luiz <weberlf@...> escreveu:

> **
>
>
> 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 shell-script@..., "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]
> >
>
>
>


[As partes desta mensagem que não continham texto foram removidas]




Seg, 13 de Fev de 2012 11:01 am

julioneves99
Offline Offline
Enviar e-mail Enviar e-mail

Mensagem #34128 de 34536 |
Expandir mensagens Nome/E-mail Classificar por data

Caros da lista Se executar o comando abaixo, ssh -o ConnectTimeout=10 -p 5960 suporte@... ''uptime | awk '{print $10,$11,$12}''' Obtenho o resultado ...
Luiz
weberlf Offline Enviar e-mail
11 de Fev de 2012
12:24 am

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 ...
Julio C. Neves
julioneves99 Offline Enviar e-mail
11 de Fev de 2012
2:37 pm

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...
Luiz
weberlf Offline Enviar e-mail
13 de Fev de 2012
10:27 am

Ô Luiz, eu escrevi 10 km de resposta e vc só leu 1 m! Usei o cut pq acho um absurdo usar o awk para cortar. É como matar mosquito com bazuca. O problema da...
Julio C. Neves
julioneves99 Offline Enviar e-mail
13 de Fev de 2012
11:01 am
Avançado

Copyright © 2010 Yahoo! do Brasil Internet Ltda. Todos os direitos reservados.
Política de Privacidade - Termos do Serviço - Diretrizes - Ajuda