想像する:
ファイルの日付値をデフォルトでDD-MM-YYYY形式の変数として抽出しています。システム日付からこの日付を減算する必要があります。両方の日付がDD-MM-YYYY形式の場合、減算結果は無効です。だから私はGoogleからいくつかの内容を読み、両方の日付をYYYY-MM-DD形式で指定することにしました。これにより、減算後に正しい値が提供されます。システム日付形式をYYYY-MM-DDとして正常に指定しましたが、ファイルから取得した日付をYYYY-MM-DD形式に変換する際に問題があります。
次の解決策は1桁の日付に適用されます。
$ date -d $(sed "s/-/\//g" <<< '9-2-1832') +%Y-%m-%d
Output : 1832-09-02
しかし、日付を次のように2桁に変換しようとすると、次のようになります。
$ date -d $(sed "s/-/\//g" <<< '19-07-2021') +%Y-%m-%d
私は出力を得る
Invalid date '19/07/2021'
どこ:
19 - is Date of a month
07 - is Month i.e. July in this case.
2021 - is Year
希望の出力は ->2021-07-19
私は日付バージョンがdate(GNU coreutils)8.22のRH Linuxで作業しています。
上記の問題に対する解決策を提供するのに役立ちます。
ベストアンサー1
あなたの場合、awk
おそらくより良いアプローチになります。
$ awk -F'-' '{printf("%04d-%02d-%02d\n",$3,$2,$1)}' <<< '19-07-2021'
2021-07-19