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

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

teste condicional em awk


From: merthobu
Subject: teste condicional em awk
Date: Tue, 15 Jan 2008 17:48:14 -0000
User-agent: eGroups-EW/0.82

Olá Pessoal,
Estou precisando de uma ajudinha com um teste condicional em uma parte
de meu script com o awk.
Em um trecho de duas saidas de arquivos tenho a seguinte formatação:
saida1: 
        A1        A1        A1        A1        A1         E         E
  0.000929  0.973412 -0.029823  0.005237  0.015094  0.000000  0.000000
  0.001714 -0.009132  0.255561 -0.335380  0.337923  0.000000  0.000000
  0.000035  0.044019  0.070011 -0.103921  0.076606  0.000000  0.000000
  0.003394 -0.004073  0.043863 -0.124397  0.473528  0.000000  0.000000
  0.000000  0.000000  0.000000  0.000000  0.000000  0.190161  0.304455
 -0.000228 -0.002904 -0.127466  0.019194  0.263433  0.000000  0.000000
  0.000000  0.000000  0.000000  0.000000  0.000000  0.250651  0.424125
  ....................................................................
  etc....
________________________________________________________________________
saida2:
        A1        A1        A1        A1         E        A1         E
  0.001239  0.973736 -0.049283  0.012921  0.000000  0.018807  0.000000
  0.001899 -0.006501  0.264439 -0.233010  0.000000  0.384591  0.000000
  0.000599  0.045845  0.071906 -0.075298  0.000000  0.085593  0.000000
  0.004548 -0.002448  0.040435 -0.027492  0.000000  0.530845  0.000000
  0.000000  0.000000  0.000000  0.000000  0.209819  0.000000  0.282460
 -0.000445 -0.003986 -0.167363  0.064887  0.000000  0.274851  0.000000
  0.000000  0.000000  0.000000  0.000000  0.252410  0.000000  0.419213
........................................................................
 etc...
________________________________________________________________________
Gostaria de trocar as colunas $5 pela $6 toda vez que ocorrer que o A1
fica na coluna 6 ($6) e o E fique na coluna 5 ($5). Como estou rodando
um laço para muitos arquivos seria legal se o awk checasse essa
condição e colando nessa ordem:
   A1        A1        A1        A1        A1         E         E

Tentei usando duas sintaxes conforme abaixo, mas ambas só funcionam em
um caso, falhando a outra condição.
--------------------------------------------------------------------
{
if ($5 ~ "1E"){
         tmp1 = $6; tmp2 = $5; $5 = $6; tmp1 = $5;
         print $1,$2,$3,$4,$5,tmp2,$7
}
elif ($5 ~ "A1")
        print $1,$2,$3,$4,$5,$6,$7
}
--------------------------------------------------------------------
Esta condição trabalha bem na saida1 mas falha na saida2....por outro
lado, esta tentativa:
---------------------------------------------------------------------
{
if ($5 ~ /1E/)
         tmp1 = $7; tmp2 = $5; $5 = $7; tmp1 = $5;
        print $1,$2,$3,$4,$5,tmp2,$9
if ($5 ~ /A1/)
        tmp1 =
        print $1,$2,$3,$4,$5,$6,$9
}
---------------------------------------------------------------------
Falha na saida1 mas funciona na saida2.
Quem se arrisca a dar um pitaco nesse condicional do awk.
Um ano prospero a todos e seus familiares, forte abraço.

Humberto



reply via email to

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