echo $(( ('date +%s' - 'date +%s -d '2014/11/17'') / 86400 )) days ago
Comecei a trabalhar na minha posição atual desde 17 de novembro de 2014. Gostaria de saber quantos dias correram até agora. Alguma idéia de como usar o Linux para chegar a uma solução simples e agradável?
Bem, em face disso:
$ date --date="-239 days"
Mon Nov 17 15:25:40 CET 2014
Em um script (não muito eficiente, mas ... talvez lide com segundos bissextos?;))
i=0
result=""
while [ "$result" != "20141117" ]
do
i=$((i+1))
result=$(date --date="-$i days" +%Y%m%d)
done
echo "$i" days have passed since "$result"
Eu tentei python na linha de comando.
$ python -c "import datetime; print datetime.date.today() - datetime.date(2014,11,17)"
246 days, 0:00:00
Você pode usar a biblioteca de Velud do awk:
$ velour -n 'print t_secday(t_now() - t_utc(2014, 9, 8))'
1385.54
Ou:
$ velour -n 'print t_secday(t_now() - t_utc(ARGV[1], ARGV[2], ARGV[3]))' 2014 9 8
1385.54
Tags date shell-script