Если у меня есть ниже двух дат:
2015-09-12,2015-08-13
И мне нужно получить количество дней между ними, я буду использовать следующий код:
awk -F'[-,]' '{print 360*($4-$1)+30*($5-$2)+($6-$3)}'
Выход для этого кода будет в то -29
время как на самом деле разница29
bash
text-processing
awk
Eng7
источник
источник
sqrt(x^2)
это хорошо, ноsqrt(x)^2
может привести к небольшим ошибкам, которые могут вызвать сюрпризы. Для busyboxawk
его необходимо собрать с включенной поддержкой математики (например, не в пакетах Debian).sqrt(x^2)
.Другой путь:
источник
Предполагая, что вы работаете в GNU
awk
, здесьmktime
есть полезная функция.источник
В последнее время, но вот решение, использующее
date
команду GNU, которое не основано на фиксированных 30 днях каждый месяц, чтобы все ответы, опубликованные выше, рассматривали его, но ответ Стива .Для ввода ниже:
Выход:
источник