Mam ciąg daty, który mogę analizować i formatować za pomocą komendy date
ze skryptu bash.Data względna bash (x dni temu)
Ale jak ustalić, ile dni temu ta data pochodziła z mojego scenariusza? Chciałbym skończyć z numerem.
Mam ciąg daty, który mogę analizować i formatować za pomocą komendy date
ze skryptu bash.Data względna bash (x dni temu)
Ale jak ustalić, ile dni temu ta data pochodziła z mojego scenariusza? Chciałbym skończyć z numerem.
Można zrobić kilka date arytmetyki:
DATE=01/02/2010
echo $((($(date +%s) - $(date -d "$DATE" +%s)) /(24 * 60 * 60)))
konwertować datę i teraz w sekundach od początku epoki, odejmowanie, dzielenie przez liczbę sekund w ciągu dnia:
#!/bin/bash
((a = `date -d "Wed Jan 12 02:33:22 PST 2011" +%s`))
((b = `date +%s`))
echo $(((b-a)/(60*60*24)))
Na marginesie, możesz zrobić względne daty bezpośrednio w' date': 'date - date =" 2011-01- 13 + 5 dni " – l0b0
Schludnie! :) Dzięki. Jest to jednak pomocne tylko wtedy, gdy celujesz w określoną liczbę dni różniących się od podanej daty, nie znajdując różnicy między dwiema podanymi datami. – sarnold
Nie trzeba wykonywać prostego zadania w podwójnych nawiasach (nie można jednak mieć spacji wokół znaku równości). Powinieneś jednak użyć '$()' zamiast podstawienia komend zamiast używać zwrotnych. –
Użyj daty jako wartość daty dla daty. Przykład 5 dni temu:
date -d "`date`-5days"
Nie trzeba otwierać podpowłoki: 'date -d" -5days "' jest po prostu takie samo :) – neurino
Warto tu wspomnieć, że wersja nieaktualna AIX nie posiada opcji -d, więc chociaż OP prosi o rozwiązanie Linux, to nie byłoby cross- rozwiązanie platformy. – frankster
Na OSX strony man mówią: '-d dst Ustawia wartość jądra dla czasu letniego. – andsens