問題を単純化するために、変数(2015年10月15日を表す)があるとしましょう。
dat="10152015"
結果は次のdat
とおりです。10142015
今日の日付は使用しません。
私が経験している問題は、日付を1日減らす方法を見つけることです。 4番目の桁だけを減らしても構いませんが、これはカレンダーです。
私の現在のアイデアは、それをUnixが理解する形式(それが何でも)に変換し、そこで作業を試みてから答えを再変換することです。
ベストアンサー1
GNU日付が必要です。
dat="10152015"
date -d "${dat:4}${dat:0:4} yesterday" +%m%d%Y
YYYYMMDD
ISO 9601日付形式であり、MMDDYYYY
圧縮されたUS形式は、通常の部分文字列拡張を使用して半分を交換するだけでその形式に変換できます。
これにはgnuの日付が必要ですが、他のバージョンの日付は現在ではない時刻表示をサポートしていないと思います。