날짜 사이에 이상한 차이가 있어

날짜 사이에 이상한 차이가 있어

다음 파일이 있습니다.

1,2,3,4,5,2015-10-13,7,8,2037-01-15
1,2,3,4,5,2015-09-05,7,8,2040-01-15
1,2,3,4,5,2015-09-15,7,8,2016-06-15
1,2,3,4,5,2015-10-13,7,8,2015-07-08
1,2,3,4,5,2015-11-02,7,8,2015-08-02

을 사용하여 awk두 날짜($6와 $9) 사이의 일수를 어떻게 확인할 수 있나요?

마지막 레코드의 경우 결과는 다음과 같아야 합니다.90

가능합니까? 감사해요...

답변1

질문에 따르면 모든 달을 30일로 계산한다고 가정합니다. 이 경우 외부 도구(예: )를 사용할 필요가 없으며 date직접 날짜를 계산하면 됩니다.

awk -F'[,-]' '{print 360*($6-$11)+30*($7-$12)+($8-$13)}' file

-7652
-8770
-270
95
90

답변2

여기서는 gnu awk가 괜찮다고 가정합니다...

다음은 일수 차이를 제공하는 방법입니다. 하지만 이는 원하는 결과가 아닙니다(2015-11-02부터 2015-08-02까지의 기간은 92일이며 원하는 결과는 90일입니다).

$ awk -F, '{ gsub(/-/," ",$0); print (mktime($6 " 00 00 00")-mktime($9 " 00 00 00"))/86400 }' file.txt
-7765.04
-8898.04
-274
97
92.0417
$

관련 정보