Coba ini untuk mendapatkan tanggal hari Senin saat ini.
wd=`date +%u`;
let wd=wd-1;
mon=`date --date="-$wd day" +%Y%m%d`;
Bagi kita yang tidak memiliki tanggal GNU (seperti kita OS Xers), kita mungkin memiliki parameter "-v"
Anda kemudian dapat melakukan ini:
# 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
Ini juga sepertinya tidak menjadi masalah jika hari ini adalah hari Senin, dalam kasus saya saat ini adalah hari Kamis
# 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.
jika rentang sesuai keinginan Anda, Anda mungkin perlu melakukan beberapa hal
#Tuesday to Sunday
#since today is monday, I'll use Tuesday
echo `date -dtuesday +%Y%m%d-``date -dnext-sunday +%Y%m%d`
yang akan menampilkan:
20110628-20110703
Lebih lanjut tentang Tanggal
perhatikan ini hanya berfungsi pada tanggal GNU
Saya telah membaca bahwa:
Versi tanggal Solaris, yang tidak dapat mendukung
-d
dapat diatasi dengan mengganti sunfreeware.com versi tertanggal
Saya pikir ini benar-benar menjawab apa yang diminta:
date -d "next monday - 7 days"
Konversi format tanggal dalam bash
temukan:jalur harus mendahului ekspresi:Bagaimana cara menentukan pencarian rekursif yang juga menemukan file di direktori saat ini?