如何获取自 bash 中特定日期以来的天数
How to get the number of days since a specific date in bash
我需要找到从特定日期(假设是 01011980)到今天的天数。想写一个 shell 脚本,它将在 solaris 上 运行。
例如:uname -a -->SunOS test-1 5.11 11.3 sun4v sparc sun4v
到目前为止,我已经能够将当前日期格式化为所需的格式。
但找不到将给定日期转换为可用于从当前日期减去天数的格式的方法。
我尝试了 date +%s 并传入了所需的日期,但每次都显示当前时间。
AG1> date +%s
1495427876
AG1> (date +%s -ud '2003-08-02 17:24:33' )
1495427877
AG1>
我不想使用另一种语言,如 perl,因为这将执行不同的机器,而额外的编程语言将是一个障碍。
谁能帮忙。
使用算术评估:
echo $(( ($(date +%s) - $(date +%s -ud '2003-08-02 17:24:33')) / 3600 / 24 ))
答案:5041。
编辑:由于问题是关于 SunOS 的,因此此系统中的 date
实用程序不同于 GNU date
,并且密钥 -d
不起作用。 SunOS 中的 GNU 版本是 /usr/gnu/bin/date
.
我需要找到从特定日期(假设是 01011980)到今天的天数。想写一个 shell 脚本,它将在 solaris 上 运行。
例如:uname -a -->SunOS test-1 5.11 11.3 sun4v sparc sun4v
到目前为止,我已经能够将当前日期格式化为所需的格式。
但找不到将给定日期转换为可用于从当前日期减去天数的格式的方法。
我尝试了 date +%s 并传入了所需的日期,但每次都显示当前时间。
AG1> date +%s
1495427876
AG1> (date +%s -ud '2003-08-02 17:24:33' )
1495427877
AG1>
我不想使用另一种语言,如 perl,因为这将执行不同的机器,而额外的编程语言将是一个障碍。
谁能帮忙。
使用算术评估:
echo $(( ($(date +%s) - $(date +%s -ud '2003-08-02 17:24:33')) / 3600 / 24 ))
答案:5041。
编辑:由于问题是关于 SunOS 的,因此此系统中的 date
实用程序不同于 GNU date
,并且密钥 -d
不起作用。 SunOS 中的 GNU 版本是 /usr/gnu/bin/date
.