日期早于当前日期 90 天的订阅者

日期早于当前日期 90 天的订阅者

我必须仅显示那些处于“未连接状态”且日期比今天早 90 天的订阅者。

以下命令用于此目的:

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}

问题是这个表达式没有被计算:( substr($11,2,8) -lt $dm )

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

结果为“20170520”,这是正确的。

请帮助我在命令中正确评估和比较该表达式。

答案1

dm=$( )在 awk 之外评估,尝试

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

并且不要在 awk 中使用-ltbut 。<

相关内容