我有一个命令,它给出了前几天的日期:
date -d '-1 day' '+%Y%d%m'
在AIX系统中运行时,同一命令出错。
“ - d无法识别标志”
下面的命令正在运行,它给出了当前的日期AIX系统。
date -u +%Y%d%m
但低于命令给出错误为“1无法识别标志”
date -u '-1 day' +%Y%d%m
如何在AIX中获取前几天的日期。
答案 0 :(得分:1)
date
是一个程序,而不是shell的内置命令。因此,无论使用何种shell,它都应该有效。
falsetru@ubuntu:~$ bash
falsetru@ubuntu:~$ date -d '-1 day' '+%Y%d%m'
20142103
falsetru@ubuntu:~$ ksh
$ date -d '-1 day' '+%Y%d%m'
20142103
$ type date
date is a tracked alias for /bin/date
答案 1 :(得分:1)
操作时区可以在几个小时内更改时钟。 更加复杂的是夏令时。由于夏令时,24小时前可以是今天或前天。
你确定昨天是20或30小时前。哪一个?嗯,最近的一个不是今天。
echo "$(TZ=GMT+30 date +%Y-%m-%d)\n$(TZ=GMT+20 date +%Y-%m-%d)" | grep -v $(date +%Y-%m-%d) | tail -1
以上命令适用于ksh。当你使用bash时,你需要echo -e:
echo -e "$(TZ=GMT+30 date +%Y-%m-%d)\n$(TZ=GMT+20 date +%Y-%m-%d)" | grep -v $(date +%Y-%m-%d) | tail -1
答案 2 :(得分:0)
date -d
是GNU
主义,因此在非GNU
实施中不可用,例如vanilla AIX
date
。但是,您可以在coreutils
附带的AIX
上安装GNU date
(下载链接here)。