n天前从命令行上的给定日期开始

che*_*eng 5 unix linux shell gnu date

例如,给定日期为"2016-12-31",n为2,预期输出为"2016-12-29".

我调查date命令并且从当前日期开始n天很容易:
date -d "2 days ago" +%Y-%m-%d

fed*_*qui 9

只需提及您想要提取两天的日期:

$ date -d "2016-12-31 2 days ago" +%Y-%m-%d
2016-12-29
Run Code Online (Sandbox Code Playgroud)

或者在语法上更好一些:

$ date -d "2016-12-31 -2 days" +%Y-%m-%d
2016-12-29
Run Code Online (Sandbox Code Playgroud)

  • 没想到命令会如此强大 (2认同)
  • @cheng确实,它是如此强大!请注意,它有时可能很奇怪:[如果不是1则日期处理第一个参数错误](http://unix.stackexchange.com/q/211796/40596). (2认同)