linux - 如何在linux命令中检查指定范围内每一天的日期输出

标签 linux shell

我有这个命令 date -d "-0 month -$(($(date +%d)-1)) days"+%Y%m%d,我喜欢知道 2014-Sep-1 和 2014-Sep-30 之间的所有日子,返回的结果是什么。

如何在不改变我的系统时钟的情况下模拟这个?

最佳答案

您可以再次为date 使用-d 选项。

$ date -d "2014-09-01"
Mon Sep  1 00:00:00 CEST 2014
$ date -d "2014-09-01 + 1 day"
Tue Sep  2 00:00:00 CEST 2014

有点像

for i in `seq 0 29`
do
    today=$(date -d "2014-09-01 + $i days" '+%F')
    day=$(date -d "2014-09-01 + $i days" '+%-d')
    date -d "$today -0 month -$(($day - 1)) days" '+%Y%m%d'
done

应该可以解决问题。请注意,我已将格式说明符更改为 %-d。否则,shell 会将前九个值解释为八进制,这对于 08 和 09 将失败。

但是,我不太确定您最终想要实现的目标。如果只想打印该月的第一天,

$ date '+%Y%m01'

看起来很多更简单。

关于linux - 如何在linux命令中检查指定范围内每一天的日期输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26170558/

相关文章:

javascript - Shell 脚本 .SH 替换文件中的定义部分

android - 如何使用 adb 命令在任何 android 上查找 CPU 温度

c - UDP客户端连接过程正确,Unix环境下传输失败

ruby - 安装 gem 时出错

linux - 每次在 linux 上运行 shell 脚本时创建一个新目录

linux - "root/.bashrc about: command not found"

linux - 我应该在我的服务器存储库的 svn 中看到所有新添加的文件吗?

linux - 无法在 Windows 上克隆,但可以从 Gitlab 服务器在 Linux 上克隆

linux - 如何为python项目制作可执行文件

bash - 读取文件的shell脚本