linux - script - Fecha de impresión para el lunes de la semana actual(en bash)
script fecha y hora linux (3)
Intenta esto para obtener la fecha del lunes actual.
wd=`date +%u`;
let wd=wd-1;
mon=`date --date="-$wd day" +%Y%m%d`;
Quiero obtener una fecha en el formato ''YYYYMMdd'' (por ejemplo, hoy sería 20110627) para el lunes de la semana actual. Desde mañana hasta el domingo todavía me gustaría imprimir la fecha del lunes (de hoy). Luego la próxima semana, repite el proceso.
Para aquellos de nosotros sin fechas GNU (como nosotros OS Xers), podemos tener el parámetro "-v"
A continuación, puede hacer esto:
# Most recent Monday
date -v -Mon
# Output as of this writing
Mon Jun 24 12:35:48 EDT 2013
date -v -Mon "+%Y%m%d"
# Outputs
20130624
Esto tampoco parece ser un problema si hoy es lunes, en mi caso actual el jueves
# Today''s date
date
# Outputs
Thu Jun 27 12:41:39 EDT 2013
# Most recent Thursday
date -v -Thu
# Outputs
Thu Jun 27 12:41:46 EDT 2013
#monday
date -dmonday +%Y%m%d
#last monday
date -dlast-monday +%Y%m%d
#next monday
date -dnext-monday +%Y%m%d
#two mondays from now
date -d''monday+14 days'' +%Y%m%d
#two mondays ago
date -d''monday-14 days'' +%Y%m%d
#although, if you fancy yourself an Abraham Lincolin
date -d''monday-fortnight ago'' +%Y%m%d #2 weeks ago
date -d''monday+fortnight'' +%Y%m%d #2 weeks from now
#Monday Next Year
date -d''52+monday'' +%Y%m%d
#However, Monday Last Year
date -d''52-monday'' +%Y%m%d #DOES NOT WORK
#you can try a day other than monday
#and format this differently.
Si un rango es lo que necesita, puede que necesite hacer algunas cosas.
#Tuesday to Sunday
#since today is monday, I''ll use Tuesday
echo `date -dtuesday +%Y%m%d-``date -dnext-sunday +%Y%m%d`
que daría salida:
20110628-20110703
Tenga en cuenta que esto solo funciona en la fecha de GNU
He leído que
La versión de fecha de Solaris, que no puede admitir
-d
se puede resolver reemplazando la versión de fecha de sunfreeware.com