Assinantes com data 90 dias mais antigos que a data atual [closed]

0

Eu tenho que exibir apenas os assinantes que estão em "estado desconectado" e a data é 90 dias mais velha que a data de hoje.

Abaixo, o comando é usado para essa finalidade:

cat vfsubscriber_20170817.csv | sed -e 's/^"//' -e '1d' | nawk -F '",' '{if ( (substr($11,2,4) == 2017) &&  ( substr($11,2,8) -lt $dm )&&($9=="\"unconnected") ) print $1,substr($11,2,8),$dm}' dm=$(perl -e 'use
POSIX qw(strftime); print strftime "%Y%m%d",localtime(time()- 3600*24*90);') >  ${EXTRACT_FILE}

O problema é que essa expressão não está sendo avaliada: ( substr($11,2,8) -lt $dm )

dm=$(perl -e 'use
POSIX qw(strftime); print strftime "%Y%m%d",localtime(time()- 3600*24*90);')

resulta em "20170520", o que é correto.

Por favor me ajude a obter esta expressão avaliada e comparada corretamente no comando.

    
por dia 18.08.2017 / 11:24

1 resposta

1

dm=$( ) é avaliado fora do awk, tente

... | nawk -v dm=$(perl ... ) ' ... '

E não use -lt mas < no awk.

    
por 18.08.2017 / 11:30