[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]
>