2010-05-19 14 views
6

¿Hay alguna forma de calcular una marca de tiempo para la próxima presentación de un día de la semana?"Este viernes" en el guión bash

Así, por ejemplo, con el viernes, me gustaría poder ejecutar algún código que lo calcule a partir de hoy miércoles 19/05/10, el próximo viernes será 21/05/10 y recibirá un sello de tiempo de eso.

Sé que el comando date puede analizar una fecha determinada cadena según un formato, pero no puedo encontrar la manera de calcular "el próximo viernes a partir de hoy"

Alguna idea?

EDIT: Estoy en un Mac

Respuesta

11

Con fecha de GNU:

date -d 'this Friday' '+%d/%m/%y' 

Ver Relative items in date strings, parte de la fecha documentatoin GNU. También hay examples.

+0

Si ese comando se ejecuta en sábado/domingo, ¿devolverá esta fecha de la semana o la fecha de la próxima semana? –

+0

@DJ, creo que siempre regresa hoy o en un día futuro, dentro de los 7 días desde el comienzo de hoy. Para mí, actualmente es Wed. el 19, así que 'este martes' le da a Tue. el 25to. Un punto interesante es que "este miércoles" da el 19, mientras que "el próximo miércoles" es el 26. –

+0

Fecha de la próxima semana. Según 'date' docs," this "es equivalente a no especificar nada, por lo que busca el próximo viernes que ocurra. – porges

1

Dado que ningún formato se especificó, es mucho más simple:

date -d Fri 

'esto' se asume por defecto la par, el viernes se puede abreviar. Dado que es sólo una palabra - o la significativa resto de la misma, (pregunte Th), duerma necesitan citas como

date -d "last Fri" 

haría.

+0

Llegando tarde a la pelea .. – Ben

+0

Sí, pero estaba vinculado en el lado derecho, cuando trabajaba en una pregunta real (aproximadamente el viernes antes de una fecha aleatoria), así que pensé: visite este enlace: la mayoría de las personas subestiman el poder de 'fecha'. –

+0

Claro, le daré un punto por su apreciación inigualable del poder de la fecha – Ben

Cuestiones relacionadas