本文介绍了awk计算两个日期之间的天数:的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
想计算两个日期之间的天数,例如下面的例子,天数== $ 6- $ 4头寸.
Would like to calculate number of days between two dates , for the below example, No of days == $6-$4 position.
Input.txt
Input.txt
Desc1,Desc2,Desc3,DATE_ACTIVE,STATEMENT_DATE,Desc4
abc,def,ghi,21-MAR-08,01-JUL-14,jkl
abc,def,ghi,01-JUL-14,15-JUL-14,jkl
abc,def,ghi,06-NOV-06,08-JUL-14,jkl
abc,def,ghi,18-NOV-03,08-JUL-14,jkl
abc,def,ghi,14-JUN-06,15-JUL-14,jkl
所需的输出:
Desc1,Desc2,Desc3,DATE_ACTIVE,STATEMENT_DATE,Desc4,No_Of_Days
abc,def,ghi,21-MAR-08,01-JUL-14,jkl,2293
abc,def,ghi,01-JUL-14,15-JUL-14,jkl,14
abc,def,ghi,06-NOV-06,08-JUL-14,jkl,2801
abc,def,ghi,18-NOV-03,08-JUL-14,jkl,3885
abc,def,ghi,14-JUN-06,15-JUL-14,jkl,2953
尝试过以下命令和部分命令...
Have tried below commands and partial ...
awk 'BEGIN {FS=OFS=","} {print $0,$6-$4}' Input.txt
awk 'BEGIN {FS=OFS=","} {print $0,$date($6)-$date($4)}' Input.txt
任何建议..
推荐答案
一种方法:
kent$ awk -F, -v q='"' '{
c="date -d"q$4q" +%s";c|getline d1;close(c);
c="date -d"q$5q" +%s";c|getline d2;close(c);
printf "%s,%d\n", $0,(d2-d1)/3600/24}' file
abc,def,ghi,21-MAR-08,01-JUL-14,jkl,2292
abc,def,ghi,01-JUL-14,15-JUL-14,jkl,14
abc,def,ghi,06-NOV-06,08-JUL-14,jkl,2800
abc,def,ghi,18-NOV-03,08-JUL-14,jkl,3884
abc,def,ghi,14-JUN-06,15-JUL-14,jkl,2953
这篇关于awk计算两个日期之间的天数:的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!