计算文件中存在的日期与今天的日期之间的日差

时间:2018-10-11 06:18:57

标签: unix awk sed

在下面的数据中,第3列代表订阅日期,最后一列代表直到今天的总天数(包括订阅天数和总天数)。

'919123456789','DATA','20180919','20181011','Status_Subscribed','23'
'919999999999','DATA','20180924','20181011','Status_Subscribed','18'

我需要根据第3列和今天的日期来计算天数后,找出最后一列中是否有不正确的数据。

请协助。

2 个答案:

答案 0 :(得分:1)

尝试使用strftime函数(GNU awk,而不是posix一个)

i

答案 1 :(得分:0)

使用date程序对使用另一种方法:

today=$(date "+%F")
while read -r line; do 
   IFS="," read -r x x d x x t <<<$line;
   date=$(date -d  "${d//\'/} + ${t//\'/} days" "+%F")
   [[  "$date" != "$today" ]] && echo "Bad line: ${line}"
done