我希望在unix / shell脚本中获取上一个日期。

我使用以下代码

date -d '1 day ago' +'%Y/%m/%d'

但是我收到以下错误。

date: illegal option -- d

至于我在inetrnet上读到的内容,它基本上意味着我使用的是旧版本的GNU。 任何人都可以帮助这个。

更多信息

unix> uname -a

SunOS Server 5.10 Generic_147440-19 sun4v sparc SUNW,Sun-Fire-T200

以下命令也会出错。

unix> date --version

date: illegal option -- version
usage:  date [-u] mmddHHMM[[cc]yy][.SS]
date [-u] [+format]
date -a [-]sss[.fff]

===============>>#1 票数:13

尝试这个:

date --date="yesterday" +%Y/%m/%d

===============>>#2 票数:6

dtd="2015-06-19"
yesterday=$( date -d "${dtd} -1 days" +'%Y_%m_%d' )
echo $yesterday;

===============>>#3 票数:5

您可以使用

date -d "30 days ago" +"%d/%m/%Y"

要获得30天前的日期,同样可以用x天数替换30

===============>>#4 票数:4 已采纳

这里建议的几个解决方案假设系统中存在GNU coreutils 以下内容适用于Solaris:

TZ=GMT+24 date +’%Y/%m/%d’

===============>>#5 票数:3

为了使用date命令获得1天的返回日期:

date -v -1d它将给出(当前日期-1)表示前一天。

date -v +1d这将给出(当前日期+1)表示1天后。

类似下面的代码可以用来代替d来找出年,月等

y-Year, m-Month w-Week d-Day H-Hour M-Minute
S-Second

===============>>#6 票数:2

以下脚本将上一个日期打印到targetDate (指定日期或给定日期)

targetDate=2014-06-30
count=1
startDate=$( echo `date -d "${targetDate} -${count} days" +"%Y-%m-%d"`)
echo $startDate

===============>>#7 票数:0

SunOS附带了传统的BSD用户工具,这些工具通常缺乏预期的现代选项。 看看你是否可以获得XPG附加组件(它类似于/usr/xpg4/bin/date )或者如果可以的话安装GNU coreutils软件包。

在此期间,您可能需要编写自己的简单日期处理脚本。 网上有很多例子,例如Perl。 比如这个

vnix$ perl -MPOSIX=strftime -le 'print strftime("%Y%m", localtime(time-86400))'
201304

(略微适应,如果你与链接背后的那个比较。)

===============>>#8 票数:0

我使用以下解决方法来获得所需的解决方案。

timeA=$(date +%Y%m)
sysD=$(date +%d)
print "Initial sysD $sysD">>LogPrint.log
sysD=$((sysD-1))
print "Final sysD $sysD">>LogPrint.log
finalTime=$timeA$sysD

我希望这对那些面临同样问题的人有用。

===============>>#9 票数:0

$ date '+%m/%d/%Y' --- current date


$ TZ=Etc/GMT+24 date  '+%m/%d/%Y'  -- one dayprevious date

适当使用时区

===============>>#10 票数:0

试试这个:gdate -d“1天前”+“%Y /%m /%d”

===============>>#11 票数:-1

问题

您使用反引号而不是单引号作为参数。 您也可能没有使用GNU日期或支持您正在使用的标志的日期版本。

正确引用你的论点。 例如:

$ date -d '1 day ago' +'%Y/%m/%d'
2013/04/14

  ask by misguided translate from so

未解决问题?本站智能推荐: