shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Achar uma coluna


From: Alain
Subject: Re: [shell-script] Achar uma coluna
Date: Tue, 15 Mar 2005 22:21:32 -0300
User-agent: Mozilla Thunderbird 1.0 (X11/20041206)

é incrível como ajuda a explicar uma coisa que você está querendo ;-)

Qto ao espaços, só funciona se estiver entre aspas duplas. Isso evita que o shell compacte os espaços.

Alain

SuSE List escreveu:
Beleza Alain,

Eu parti do pressuposto que o shell/awk eliminam os espaços em branco desnecessarios......isso circulou aqui na lista um tempinho atras....me corrijam se eu estiver falando besteira.....

Mas beleza, se ajudou, ja valeu a pena.......

[]s

Vinny

Alain wrote:


Oi Vini,

Obrigado pela força, mas é mais complicado: Naquelas primeiras colunas,
poder um espaço em branco a mais :(( isso estraga todo o raciocínio por
colunas

Pelo awk dá para separar por colunas fixas, mas preciso descobrir
primeiro que colunas são essas analizando a primeira linha

ACHEI: ensando um pouco sobre o awk:

echo "     remote           refid      st t when poll reach   delay
offset" | awk '{print match($0,"reach")}'

responde 49

agora eu posso fazer ${LINHA:49:5} e ter certeza que pequei o dado
certo. Esse script tem muito trabalho pela frente...

Obrigado pelo apoio ;-)

Alain

SuSE List escreveu:

Alain,

Da pra fazer isso, usando " " como caracter separador de campos....em
função disso cada campo tem um "espaço", o reach seria o setimo
campo....com o que vc mandou fiz o seguinte teste:
Também atentando que possa ter mais de um espaco em branco, seja no
inicio ou no fim da coluna.....veja:

msp01:/home/vinicius # cat texto.txt
+ntp1.pucpr.br tick.ucla.edu 2 u 716 1024 377 237.626

19.915

11.058
paulo.hiway.com Tick.UH.EDU 2 u 159 1024 377 385.982

77.252
427.978

msp01:/home/vinicius # cat texto.txt | awk -F" " '{print
$7"\t"$8"\t"$9"\t"$10}'
377     237.626 19.915  11.058
377     385.982 77.252  427.978

msp01:/home/vinicius # cat texto.txt | awk -F" " '{print $7" "$8" "$9"
"$10}'
377 237.626 19.915 11.058
377 385.982 77.252 427.978

ou ainda, imprimindo também a primeira coluna também:

msp01:/home/vinicius # cat texto.txt | awk -F" " '{print $1" "$7" "$8"
"$9" "$10}'
+ntp1.pucpr.br 377 237.626 19.915 11.058
paulo.hiway.com 377 385.982 77.252 427.978

msp01:/home/vinicius # cat texto.txt | awk -F" " '{print
$1"\t"$7"\t"$8"\t"$9"\t"$10}'
+ntp1.pucpr.br  377     237.626 19.915  11.058
paulo.hiway.com 377     385.982 77.252  427.978


O parametro "\t" entre aspas é o caracter de tabulação no awk....
é isso que vc precisa?

[]s

Vinny

Alain wrote:



Eu não quis entupir a lista com listagens, mas aqui vai uma nescessária.
O comando retorna:

[root@servnet1 root]# ntpq -p
    remote           refid      st t when poll reach   delay   offset
jitter
==============================================================================
+ntp1.pucpr.br   tick.ucla.edu    2 u  716 1024  377  237.626   19.915
11.058
paulo.hiway.com Tick.UH.EDU      2 u  159 1024  377  385.982   77.252
427.978

A primeira linha serve de título, eu preciso testar aquele 377 embaixo
do reach. Só que, vendo listas semelhantes na lista do ntp, acontece o
seguinte: 1) na segunda coluna (pulando o primeiro caracter) e na
terceira podem existir " ", e 2) a largura e quantidade das colunas não
é sempre exata mas varia com as versões.

Portanto eu preciso achar a posição da palavra "reach" na primeira linha
para recortar as linhas apartir da terceira

Alain

SuSE List escreveu:


Alain,

Estas colunas tem tamanho fixo??? Você quer ler a partir do primeiro
caracter da coluna reach ate o final, desprezando os caracteres
iniciaiss ou vc só quer exibir as 4 ultimas colunas......de um exemplo
que fica mais facil....pois existem varias formas de se fazer isso...

Alain wrote:



Eu tenho a saída de um comando (ntpq) assim (primeira linha):

   remote           refid      st t when poll reach   delay   offset
jitter

como eu faço para ler a coluna em que começa a palavra "reach"? Ou

seja

o número de caracteres desde o começo da linha.

grtato,
Alain


---------------------------------------------------------------------
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.listas-discussao.cjb.net
---------------------------------------------------------------------



*Yahoo! Grupos, um serviço oferecido por:*

*
<http://br.rd.yahoo.com/SIG=12adu0u0d/M=264105.3931087.6562589.1588051/D=brclubs/S=2137111254:HM/EXP=1110993832/A=2361264/R=6/SIG=10v4acpp0/*http://br.shopping.yahoo.com/>*

------------------------------------------------------------------------
*Links do Yahoo! Grupos*

  * Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/shell-script/
* Para sair deste grupo, envie um e-mail para:
    address@hidden

<mailto:address@hidden?subject=Unsubscribe>

* O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
    Serviço do Yahoo! <http://br.yahoo.com/info/utos.html>.






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



---------------------------------------------------------------------
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.listas-discussao.cjb.net

---------------------------------------------------------------------

Links do Yahoo! Grupos












---------------------------------------------------------------------
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.listas-discussao.cjb.net
---------------------------------------------------------------------



*Yahoo! Grupos, um serviço oferecido por:*

* <http://br.rd.yahoo.com/SIG=12aj8ipc1/M=264105.3931087.6562589.1588051/D=brclubs/S=2137111254:HM/EXP=1111006012/A=2361264/R=6/SIG=10v4acpp0/*http://br.shopping.yahoo.com/>*
        


------------------------------------------------------------------------
*Links do Yahoo! Grupos*

   * Para visitar o site do seu grupo na web, acesse:
     http://br.groups.yahoo.com/group/shell-script/
* Para sair deste grupo, envie um e-mail para:
     address@hidden
     <mailto:address@hidden?subject=Unsubscribe>
* O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
     Serviço do Yahoo! <http://br.yahoo.com/info/utos.html>.






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



---------------------------------------------------------------------
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.listas-discussao.cjb.net
---------------------------------------------------------------------
Links do Yahoo! Grupos










reply via email to

[Prev in Thread] Current Thread [Next in Thread]