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

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

Re: [shell-script] Re: awk


From: Renato Pires
Subject: Re: [shell-script] Re: awk
Date: Fri, 2 Jul 2010 08:11:26 -0300

Bom dia

Já testou assim ?


=-- Arquivo: dados --=
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


data='20090115'
nawk -F\| -v dt=${data} '{ if ($3 ="pera" && $4 < dt) { print $0 >
localizados } else { print $0 > naolocalizados }' < dados

Obs. a data deverá ser deste formato YYYYMMDD

Abraços

Renato


Em 2 de julho de 2010 06:57, fsilva6 <address@hidden> escreveu:

>
>
> 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 <shell-script%40yahoogrupos.com.br>,
> 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]
> >
>
>  
>


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



reply via email to

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