2017-03-19 207 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'。 –

相关问题