特定の日以降の次の土曜日の日付が必要です。たとえば、$date1="30-AUG-2015"
05-SEP-2015という結果が必要です。
私は成功せず、次のコマンドをすべて試しました。
samba@samba:~$ date1="30-AUG-2015"
samba@samba:~$ date2=$(date --date='"$date1" +next Saturday')
date: invalid date ‘"$date1" +next Saturday’
samba@samba:~$ date1="30-AUG-2015"
samba@samba:~$ date2=$(date --date1='next Saturday')
date: unrecognized option '--date1=next Saturday'
Try 'date --help' for more information.
samba@samba:~$ date1="30-AUG-2015"
samba@samba:~$ date -d "$date1 next saturday"
Sun Aug 30 00:00:00 IST 2015
samba@samba:~$ $date1 -d "next saturday"
30-AUG-2015: command not found
ベストアンサー1
私は強くお勧めします日付ツールこのようなことのために。
Fedora Linux 21+またはCentOS / RHEL(EPELを含む):
dnf install dateutils
(yum
以前のバージョンのRHELではDNFの代わりに)
Debianベースのシステムでは、パッケージを呼び出すこともできますが、関連しないパッケージと同じ名前のコマンドといくつかのパッケージを区別するために、コマンドの前にdateutils
プレフィックスが付けられます(したがって、以下のコマンドで置き換えられます)。dateutils.
dateround
dateutils.dround
次に、次のようにします。
dateround today sunday
「今日」を使用するか、実際の日付に置き換えることができます。
$ dateround 2015-08-30 saturday
2015-09-05
2015 年 8 月 30 日など、特定の形式で日付を入力する必要がある場合は、次のように、または-i
オプションを使用できます。--input-format
$ dateround -i '%d-%b-%Y' 30-AUG-2015 saturday
2015-09-05
「dateround」という名前からすぐにはわかりませんが、このコマンドは丸め- つまり、月曜日は前の日曜日にロールバックされません。一致するものがある場合、デフォルトでは現在の日付も返されます。たとえば、今日が日曜日の場合、dateround today sunday
今日の日付が提供されます。常に将来の日付になるようにこの--next
フラグを追加してください。