Вычислить разницу в дате между $2, $3 из файла в awk

Мне понадобится твоя помощь.

Файл только с датой,

файл.txt

P1,2013/jul/9,2013/jul/14 
P2,2013/jul/14,2013/jul/6 
P3,2013/jul/7,2013/jul/5 

отображать вывод, как это

P1,2013/jul/9,2013/jul/14,5days
P2,2013/jul/14,2013/jul/6,8days 
P3,2013/jul/7,2013/jul/5,2days

person k3090    schedule 16.07.2013    source источник
comment
Посмотрите на awk --> mktime функции времени   -  person captcha    schedule 16.07.2013
comment
@captcha, если вы использовали mktime, как преобразовать jul в 7, построить dict/массив?   -  person Kent    schedule 16.07.2013
comment
@ Кент, да, в оболочке Windows нет функции date, такой как bash.   -  person captcha    schedule 16.07.2013


Ответы (1)


Я не думаю, что mktime() - лучший вариант для этой проблемы. Я бы пошел с внешней командой даты:

awk -F'[,/]' '{
"date -d\""$3"-"$4"-"$2"\" +%s"|getline d1
"date -d\""$6"-"$7"-"$5"\" +%s"|getline d2
x=d1-d2; x=x<0?-x:x;x/=3600*24;
print $0","x" days"
 }' file

выход

P1,2013/jul/9,2013/jul/14 ,5 days
P2,2013/jul/14,2013/jul/6 ,8 days
P3,2013/jul/7,2013/jul/5 ,2 days
person Kent    schedule 16.07.2013