Esattamente come la domanda suona. Voglio sottrarre dire 20120115 dal 20120203 e ottenere 19 come risposta. Qual è il modo migliore per implementarlo in uno script di shell?Come faccio a ottenere la differenza tra due date sotto bash
risposta
let DIFF=(`date +%s -d 20120203`-`date +%s -d 20120115`)/86400
echo $DIFF
Come mai la data ha riconosciuto che la stringa è nel formato AAAAMMGG? Per favore, indirizzami alla documentazione. –
man 1 date dice "The --date = STRING è una stringa di data leggibile leggibile in formato libero" –
Cosa succede se la stringa è 03022012? Si noti che ho modificato il formato in GGMMAAAAA. –
Una soluzione rapida e del tutto sporco che può essere utilizzato negli script (veloci e anche veloci):
function getdate { for dd in $(seq -w $1 $2) ; do date -d $dd +%Y%m%d 2>/dev/null ; done ; }
Io uso questa funzione per altri scopi relativi ai file di log. E per contare i giorni:
echo "$(getdate YYYYmmdd YYYYmmdd)" | wc -l
YYYYmmdd devono essere date, ovviamente. Funziona solo se $ 1 è una data precedente a $ 2 ed è lento per grandi differenze di date, ma per un periodo di alcuni anni e per essere utilizzato in script ad-hoc è abbastanza utile.
E se vi capita di avere mysql o simili installato v'è un molto veloce opzione:
mysql -BNe "SELECT DATEDIFF($1,$2) AS DiffDate ;" | tr -d -
L'ultima tr
permette di inserire le date in qualsiasi ordine (MySQL sarebbe altrimenti rendere un '-'if la prima data è anteriore al secondo)
- 1. Come ottenere la differenza tra due date arrotondati alle ore
- 2. loop di bash tra due date date
- 3. Come faccio a trovare la differenza tra due date utilizzando Javascript
- 4. Ottenere la differenza tra due date in mesi utilizzando Java
- 5. Bash - Differenza tra due liste
- 6. calcolando la differenza tra due date
- 7. Come faccio a trovare la differenza di ora tra due date in PHP?
- 8. PHP Differenza tra mesi tra due date?
- 9. Come calcolare la differenza tra due date in python
- 10. Come ottenere la differenza tra due DataTable
- 11. Come ottenere le date tra due date in C#
- 12. Come ottenere la differenza tra due DataFrames?
- 13. Differenza tra due date con diversi anni
- 14. Differenza, in minuti, tra due date
- 15. come faccio a ottenere la differenza tra due elenchi con nome R?
- 16. shell script per ottenere la differenza in due date
- 17. Differenza tra due date in Python
- 18. Differenza Android tra due date in secondi
- 19. Come ottenere la differenza di ore tra due oggetti data?
- 20. Come ottenere la differenza in minuti tra due date in Microsoft Excel?
- 21. Differenza media tra due date, raggruppate per un terzo campo?
- 22. Come ottenere la differenza tra due date in ore, minuti e secondi?
- 23. Ottenere la differenza di tempo tra due volte in javascript
- 24. Come ottenere la differenza tra due QDateTimes in millisecondi?
- 25. La differenza di tempo SQL tra due date ha come risultato hh: mm: ss
- 26. Come ottenere la differenza tra due dizionari in Python?
- 27. Come ottenere l'elenco delle date tra due date in mysql selezionare la query
- 28. Giorni, ore, minuti, secondi tra due date
- 29. Come ottenere l'elenco di mesi e anni tra due date
- 30. Differenza tra bash pid e $$
Possibili assegno duplicato questa domanda: http://stackoverflow.com/questions/4946785/how-to-find-difference-days-between-to-dates –
Hai considerato un altro linguaggio di scripting quello supporta le date intrinsecamente? (python, ruby, perl, ... in nessun ordine particolare), Inoltre potresti usare uno script onliner nella tua fonte bash. – schoetbi
@schoetbi Ci ho pensato, ma non ero molto sicuro di quella disponibilità ovunque. So che bash basico e la data sono disponibili in tutti i punti di interesse, ma non per il resto. – owagh