2017-03-19 252 views
0

如何顯示從當年開始到當前月份之前一個月的年份和月份。當前年份爲2017年,當前月份爲03。 我想獲得如下列表。顯示年份從當年開始到當月前一個月的月份

201701 
201702 

如果我們在今年4月,應

201701 
201702 
201703 

請幫助我。

在此先感謝。

+0

是什麼?你想嘗試什麼樣的東西

month=1 while [ ${month} -lt $(date +%m) ]; do printf "$(date +%Y)%02d\n" ${month} ((month++)) done 

檢查?如果您正在尋找寫腳本,請在bash中說,請參閱http://mywiki.wooledge.org/BashGuide和https://stackoverflow.com/documentation/bash/topics開始......提示:給出兩個變量有年份和月份(如數字),你可以使用邪惡的eval,printf和大括號擴展來做到這一點......或使用數組等等 – Sundeep

回答

0

不要嘗試在不同月份使用date +%Y%m(如GNU日期date +%Y%m -d "2 month ago")。 使用date得到年份和月份。循環計數從1到(月-1)。
您需要知道如何獲得從零開始的月份。爲此使用printf "%02d"
現在你可以做你在本月1

+0

非常感謝您的幫助。我已將您的代碼添加到我的腳本中。但是它不工作。由於cur_yr_month =「日期+%Y)$ {月}」,這給了我20171 20172的結果。但我需要它作爲201701 201702月= 1 ls -ltr db/files /> file.txt while [$ {month} -lt $(date +%m)]; 做 cat file.txt |同時讀f; do file_date ='echo $ f |剪下-d「/」-f10 | cut -d「_」-f4 |切-d 「 - 」 -f1' cur_yr_month = 「日期+%Y)$ {月}」 如果[$ cur_yr_month = $ file_date] 然後 回聲 「$ file_date」 音響 ((月++)) 處理完畢 done – Ramu

+0

對於附加的0使用'printf'。 –

相關問題