如何在Bash中打印当前时间前一天的日期?
当前回答
如果你有GNU日期,我理解正确
$ date +%Y:%m:%d -d "yesterday"
2009:11:09
or
$ date +%Y:%m:%d -d "1 day ago"
2009:11:09
其他回答
简短回答(GNU格式):
date +%Y-%m-%d -d "-2 day"
如果你正在使用OSX,但你需要创建GNU兼容,首先安装coreutils
brew install coreutils
然后编辑您的个人资料:
#gnu coreutils first
export PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"
重新启动你的终端,现在你就可以使用GNU格式了!
date +%Y:%m:%d|awk -vFS=":" -vOFS=":" '{$3=$3-1;print}'
2009:11:9
如果选择的日期格式是'YYYYMM',你可以用正则表达式做一个简单的计算:
echo $(($(date +"%Y%m") - 1)) | sed -e 's/99$/12/'
2020年1月,它将返回2011912;-) 但是,这只是一个变通方法,当date没有计算选项和其他日期解释器选项(例如使用perl)不可用时;-)
如果你有GNU日期,我理解正确
$ date +%Y:%m:%d -d "yesterday"
2009:11:09
or
$ date +%Y:%m:%d -d "1 day ago"
2009:11:09
date -d "yesterday" '+%Y-%m-%d'
or
date=$(date -d "yesterday" '+%Y-%m-%d')
echo $date
推荐文章
- 安装tzdata非交互式
- 在Bash中检查变量是否存在于列表中
- 解析日期字符串并更改格式
- 查看PS命令的全部输出
- 确保一次只运行一个shell脚本实例的快速方法
- 如何在Windows命令提示符下运行.sh ?
- Java SimpleDateFormat("yyyy-MM-dd' t ' hh:mm:ss' z '")给出的时区为IST
- 如何从命令行将每两行合并为一行?
- 如何复制在bash所有目录和文件递归?
- 在Java中转换字符串到日历对象
- 如何从命令行通过mysql运行一个查询?
- 在创建守护进程时执行双fork的原因是什么?
- 在Bash命令提示符上添加git分支
- 如何在Android中获取当前日期?
- 如何创建一个日期对象从字符串在javascript