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

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

Re: awk


From: fsilva6
Subject: Re: awk
Date: Fri, 02 Jul 2010 09:57:21 -0000
User-agent: eGroups-EW/0.82

Amigão,
       aplicar o filtro não é o meu maior problema no processo. Meu maior 
problema é colocar as informações com a menor data no arquivo de localizados.

Abaixo um exemplo:

Arquivo de entrada.
limão|laranja|pera|20090127
limão|laranja|pera|20090115
limão|laranja|pera|20090101
limão|laranja|pera|20090130
jaca|pera|limão|20090130
mamao|pera|pera|20090130
mamao|pera|pera|20090102
manga|pera|morango|20090130

O arquivo de localizados deveria ficar desta forma:    
limão|laranja|pera|20090101
mamao|pera|pera|20090102
 
Enquanto o arquivo de não localizados receberia os outros registros.

limão|laranja|pera|20090127
limão|laranja|pera|20090115
limão|laranja|pera|20090130
jaca|pera|limão|20090130
mamao|pera|pera|20090130
manga|pera|morango|20090130

O grande problema é como pegar a menor data, por isso ordenei o arquivo antes 
de iniciar o processamento com o comando sort (sort -t"|" -k3 -k4).



--- Em address@hidden, Supergrilo <supergrilo@...> escreveu
>
> Para funcionar em AIX o ideal seria usar ksh puro. Mas como não é minha
> especialidade....
> 
> Acho que isso deve funcionar...
> 
> [0][fabio@Bankai:~/shell_scripts]$ cat feira.txt
> limão|laranja|pera|20090127
> limão|laranja|pera|20090115
> limão|laranja|pera|20090101
> limão|laranja|pera|20090130
> jaca|pera|limão|20090130
> mamao|pera|pera|20090130
> mamao|pera|pera|20090102
> manga|pera|morango|20090130
> 
> [0][fabio@Bankai:~/shell_scripts]$ cat peraouuva.ksh
> #!/bin/ksh
> 
> for i in $(cat feira.txt); do
>     echo ${i} | cut -d\| -f3 |grep -q pera && echo "${i}" >> localizados
> || echo ${i} >> naolocalizado
> done
> 
> [0][fabio@Bankai:~/shell_scripts]$ cat localizados
> limão|laranja|pera|20090127
> limão|laranja|pera|20090115
> limão|laranja|pera|20090101
> limão|laranja|pera|20090130
> mamao|pera|pera|20090130
> mamao|pera|pera|20090102
> 
> [0][fabio@Bankai:~/shell_scripts]$ cat naolocalizado
> jaca|pera|limão|20090130
> manga|pera|morango|20090130
> 
> 
> Att:
> Fábio Santos
> 
> On 07/01/2010 10:26 PM, fsilva6 wrote:
> >  
> >
> > Pessoal,
> > tenho um arquivo com o seguinte conteúdo.
> >
> > exemplo:
> >
> > limão|laranja|pera|20090127
> > limão|laranja|pera|20090115
> > limão|laranja|pera|20090101
> > limão|laranja|pera|20090130
> > jaca|pera|limão|20090130
> > mamao|pera|pera|20090130
> > mamao|pera|pera|20090102
> > manga|pera|morango|20090130
> >
> > Preciso gerar dois arquivos, um chamado localizado e outro de não
> > localizado.
> >
> > a)no arquivo de localizados teremos todos os registros onde o terceiro
> > campo for igual a pera e a data se a menor data informada;
> >
> > b)no arquivo de não localizados teremos todos os registros onde o
> > terceiro campo não for igual a pera é a data for diferente da a menor
> > data informada, resumindo o else do item a;
> >
> > Eu comecei ordenando o arquivo da seguinte forma:
> >
> > sort -t"|" -k3 -k4
> >
> > Agora eu me vi totalmente sem saida, gostaria de sabe se alguém me dá
> > alguma dica para inciar o resto da logica em AWK (o processo vai rodar
> > no AIX)?
> >
> > Desde já obrigado.
> >
> > 
> 
> 
> 
> [As partes desta mensagem que não continham texto foram removidas]
>




reply via email to

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