仅更改“date”命令输出的年份

仅更改“date”命令输出的年份

date例如显示Fri Apr 17 20:16:01 IST 2015

现在我只想更改年份,因此应在此示例中date显示。Fri Apr 17 20:16:01 IST 2016

date如何将Linux 命令的输出添加 1 年?

答案1

如果您想让date创建标准日期格式,您可以执行以下操作:

$ date -d "$( date -d "Fri Apr 17 20:16:01 IST 2015" "+2016-%m-%d %T" )"

但您也可以仅使用一个日期实例并使用适当的时间格式说明符,如下所示:

date -d "Fri Apr 17 20:16:01 IST 2015" "+%a %b %e %T %Z 2016"

或者 - 由于您的日期格式末尾有年份 - 仅对参考日期进行字符串处理,例如使用awk,如下所示:

date -d "Fri Apr 17 20:16:01 IST 2015" | awk '$NF=2016'

如果年份不固定但应该是下一年:

date -d "Fri Apr 17 20:16:01 IST 2015" | awk '++$NF'

如果您的日期已经在字符串中,date_string则可能是:

awk '$NF=2016' <<< "${date_string}"

答案2

GNU 日期接受您可以通过标志提供的多个相对日期-d

$ date -d '+1year'
Sun Apr 17 09:15:14 PDT 2016

日期字符串中的相关项目了解详情。

相关内容