PDA

View Full Version : sottrazione tra le date in shell


sbomberino
19-01-2005, 14:19
Ciao a tutti...
sto facendo un script in shell,
ho bisogno di analizzare dei file generati i 2 giorni precedenti al momento dell'esecuzione di questo script.
per dire se lo lancio ed è il 19 Gennaio, voglio che analizzi i file creati il 18 e il 17.
Ora sembrerebbe tutto facile no? fai un ll, un awk, prendi il giorno, togli 2 ecc.ec.c.
ma non ho tanta fantasia di mettermi a fare tutti i possibili casi... del tipo :
se lo lancio il 1 di un mese devo andare a calcolare quanti giorni ha il mese precedente blablabla... se lo lancio il 1 marzo di un anno bisestile devo considerare che Febbraio a 29 gg... se lo lancio il 1 gennaio devo controllare anche l'anno... che palle no? :D

con il comando "date" non ho trovato nulla di "utile"...
qualcuno ha qualche suggerimento?
esiste per dire un datediff che presa una data tu sottrai un tot giorni e ti da il risultato?
grazie in anticipo
;)

guldo76
19-01-2005, 15:13
Guarda qua:
ESEMPI

Per stampare la data di due giorni fa

date --date '2 days ago'

Per stampare la data di tre mesi e un giorno a partire da oggi

date --date '3 months 1 day'

Per stampare il giorno dell'anno in cui cade Natale nell'anno
corrente

date --date '25 Dec' +%j

Per stampare la data corrente in un formato che includa il nome
completo del mese e il giorno del mese

date '+%B %d'

Ma ciò potrebbe non essere quello che si vuole in quanto per i primi
nove giorni del mese, la `%d' è espansa a un campo di due cifre
completato da zeri, per esempio `date -d 1-may '+%B %d''
stamperà `May 01'.

Per stampare la stessa data ma senza lo zero iniziale per i giorni del
mese a una cifra, si può usare il modificatore non standard `-' per
disabilitare lo zero-padding

date -d 1-may '+%B %-d'

sbomberino
19-01-2005, 18:35
:eek:

grazie!! :D
non avevo proprio visto sta roba nel man del date...