web-dev-qa-db-ja.com

bash / unixで前の日付を取得する

UNIX /シェルスクリプトで前の日付を取得しようとしています。

私は次のコードを使用しています

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]
6
misguided

ここで提案されているいくつかの解決策は、GNU coreutilsシステムに存在します。 Solarisでは以下が機能するはずです。

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

これを試して:

date --date="yesterday" +%Y/%m/%d
15
kumarprd
dtd="2015-06-19"
yesterday=$( date -d "${dtd} -1 days" +'%Y_%m_%d' )
echo $yesterday;
6
Vladislav Ross

あなたが使用することができます

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

30日前の日付を取得するには、同様に30をx日数に置き換えることができます

5
Dan Pickard

Dateコマンドを使用して1日前の日付を取得するには、次のようにします。

date -v -1d(現在の日付-1)は1日前を意味します。

date -v +1dこれにより、(現在の日付+1)は1日後を意味します。

同様に、以下のコードをdの代わりに使用して、年、月などを調べることができます。

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

3
user3568717

次のスクリプトは、前の日付をtargetDate(指定された日付または指定された日付)に出力します

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

SunOSには、期待される最新のオプションが不足していることが多いレガシーBSDユーザーランドツールが付属しています。 XPGアドオンを入手できるかどうかを確認してください( /usr/xpg4/bin/date )または、可能であればGNU coreutilsパッケージをインストールします。

それまでの間、独自の簡単な日付処理スクリプトを作成する必要があるかもしれません。ネット上には多くの例があります。 Perlで。例えば。 これ

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

(リンクの背後にあるものと比較すると、わずかに適合しています。)

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


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

タイムゾーンを適切に使用する

0
akash malbari

次の回避策を使用して、必要な解決策を見つけました。

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

これが私と同じ問題に直面している人々に役立つことを願っています。

0
misguided

これを試してください:gdate -d "1日前" + "%Y /%m /%d"

0
venki