Мне нужно распечатать разницу (в днях) в (6 долларов США) между начальной и конечной датой записей для каждого уникального идентификатора (5 долларов США) в новом поле.
данных выглядит следующим образомКак рассчитать разницу начальных и конечных дат с помощью awk
7 65 2 5 32070 2010-12-14 13:25:30
7 82 2 10 41920 2010-12-14 11:30:45
7 83 1 67 29446 2010-12-14 04:15:25
7 81 1 47 32070 2011-5-11 08:14:20
7 83 1 67 29446 2011-6-22 07:13:24
7 82 2 10 41920 2011-5-14 06:15:25
мне нужно видеть следующим образом:
7 65 2 5 32070 2010-12-14 13:25:30 147
7 82 2 10 41920 2010-12-14 11:30:45 150
7 83 1 67 29446 2010-12-14 04:15:25 189
7 81 1 47 32070 2011-5-11 08:14:20 147
7 83 1 67 29446 2011-6-22 07:13:24 189
7 82 2 10 41920 2011-5-14 06:15:25 150
Я использовал следующий код, но дайте мне сообщение об ошибке. не могли бы вы мне помочь, если у вас есть другой вариант?
awk '{
split($6,arr,"-")
a=sprintf("%s %s %s 0 0 0",arr[1], arr[2], arr[3])
d=mktime(a)
delta[$5]=delta[$5] " " d
}
END {for(i in delta) {print i, delta[i]} }' filename > tmp.dat
awk '{
if (FILENAME=="tmp.dat")
{
delta[$1]=$0;
next
}
if (FILENAME=="filename")
{
a="-1"
if($5 in delta)
{
cnt=split(delta[$5],arr)
if(cnt==3)
{
a=arr[3] - arr[2]
a/=86400
a=int(a)
}
}
print $0, a
next
}
}' tmp.dat filename
[Это] (http://stackoverflow.com/questions/41247157/ как-может-я-вычислять-различие между-records-at-the-begin-and-end-of-a). –
Кажется, что тот же вопрос задавали в другом месте: http://unix.stackexchange.com/questions/333235/how-can-i-get-the-difference-in-days-using-awk/333243#333243 –