GNU/Linux >> Linux Esercitazione >  >> Linux

Stampa la data per il lunedì della settimana corrente (in bash)

Prova questo per ottenere la data del lunedì corrente.

wd=`date +%u`; 
let wd=wd-1; 
mon=`date --date="-$wd day" +%Y%m%d`;

Per quelli di noi senza date GNU (come noi OS Xers), potremmo avere il parametro "-v"

Puoi quindi fare questo:

# 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

Anche questo sembra non essere un problema se oggi è lunedì, nel mio caso attuale giovedì

# 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.

se un intervallo è ciò che stai cercando, potresti dover fare alcune cose

#Tuesday to Sunday
#since today is monday, I'll use Tuesday
echo `date -dtuesday +%Y%m%d-``date -dnext-sunday +%Y%m%d`

che produrrebbe:

20110628-20110703

Maggiori informazioni sulle date

nota che funziona solo con la data GNU

Ho letto che:

Versione di Solaris della data, che non è in grado di supportare -d può essere risolto sostituendo la versione della data di sunfreeware.com


Penso che questo risponda effettivamente a quanto richiesto:

date -d "next monday - 7 days"

Linux
  1. Suggerimenti Bash per tutti i giorni dalla riga di comando

  2. Tieniti aggiornato - Bash For, While, Until Esempi di loop

  3. Ottieni l'ora corrente in secondi da Epoch su Linux, Bash

  4. Controlla lo spazio libero su disco per la partizione corrente in bash

  5. Come determinare il numero della settimana del mese

Come ottenere la data e l'ora correnti in Python

Trucchi di formattazione per il comando data di Linux

Bash For Loop – La guida più pratica

Il ciclo Bash FOR spiegato e semplificato

Come posso ottenere la data e l'ora correnti nel terminale e impostare un comando personalizzato nel terminale per questo?

Come modificare la risoluzione di Bash per una VM Debian?