Linux
如何獲取特定日期
需要在我的腳本中獲取當月的第一個星期六日期。我可以從下面的命令中獲取上週六的日期
date -d 'last Saturday' +%y%m%d
但無法獲得第一個星期六的日期。甚至嘗試過
date -d 'First Saturday' +%y%m%d
但沒有得到預期的結果。我的要求是例如 - 在本月(七月) - 第一個星期六日期(200704)
誰能幫我獲得本月的第一個星期六日期
與
ksh93
:$ ksh93 -c 'printf "%(%y%m%d)T\n" "first saturday"' 200704
重擊
縮進的命令只是為了更好地理解。
$ target_day_id=6 # return value of date +%w; Sunday is 0 $ year_month="$(date +%Y-%m)" $ echo $year_month 2020-07 $ day_id="$(date --date="${year_month}-01" +%w)" $ echo $day_id 3 $ # July, 1st 2020 was a Wednesday $ sat1_date="${year_month}-0$(( ( (7+target_day_id-day_id) % 7 ) + 1 ))" $ echo $sat1_date 2020-07-04 $ # only formatting from now on $ sat1_date_short="${sat1_date:2}" $ echo $sat1_date_short 20-07-04 $ sat1_date_short_digits_only="${sat1_date_short//-/}" $ echo $sat1_date_short_digits_only 200704