linux - Bash 列出两个日期之间的日期时间

标签 linux bash shell

如何以 "+%Y-%m-%d %H:%M:%S" 格式列出所有日期时间?

这仅打印日期,但我希望也包含时间,即 2016-07-20 08:33:21

start=2013-09-05 
end=2013-09-11

   while [[ $start < $end ]] 
     do 
      printf "$start\n"; start=$(date -d "$start + 1 day" +"%Y-%m-%d") 
     done

最佳答案

希望这个可以帮助你:

#!/bin/bash

start="2016-07-20 08:33:50"
end="2016-07-20 08:34:01"

while [[ $start < $end ]]; do
    echo $start
    secs=$(date +%s --date="$start")
    start=$(date '+%Y-%m-%d %H:%M:%S' --date="@$((secs + 1))")
done

输出:

2016-07-20 08:33:50
2016-07-20 08:33:51
2016-07-20 08:33:52
2016-07-20 08:33:53
2016-07-20 08:33:54
2016-07-20 08:33:55
2016-07-20 08:33:56
2016-07-20 08:33:57
2016-07-20 08:33:58
2016-07-20 08:33:59
2016-07-20 08:34:00

关于linux - Bash 列出两个日期之间的日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38482874/

相关文章:

bash - 如何确定 shell 脚本文件是否源自 Bash

linux - 复制文件保留文件夹结构

linux - 围棋(围棋,围棋)游戏的良好框架?

python - Django/NGINX/Gunicorn/Ubuntu : Media files - [Errno 13] Permission denied

linux - 存储由名称中带有空格的文件组成的 ls 命令的输出

linux - 为目录中的每个 zip 文件创建一个专用文件夹并提取 zip 文件

c++ - 如何在 Linux 中找到具有写时复制的 fork 进程之间共享多少内存?

arrays - For 循环打印两个 $values 而不是一个

bash - 如何在 bash 中操作文件名?

regex - 在sed中,如何表示 "alphanumeric or _ or -"