1

ファイルから変数に日付を読み取りました。日付の形式はddmmyyyyです。yyyy-mm-ddに変換する必要があります。私はすでにこのフォーラムを検索し、ここまで到達しました:date -d'$ DATE' +%F問題は、入力形式が認識されないことです。入力した日付形式を指定する方法はありますか?他のフォーラムで私が見つけたのは:date -d "$ {OLD_DATE}" -D "%d%m%Y" +%Fここで、-Dは入力形式を指定する必要がありますが、これは機能しません。しかし、-Dは不明です。

助けてくれてありがとう、そして私の英語をごめんなさい。

4

2 に答える 2

1

あなたはこのようにすることができます:

echo "DDMMYYYY" | awk 'BEGIN {OFS="-"} {print substr($1,5,4), substr($1,3,2), substr($1,1,2)}'

出力:

YYYY-MM-DD
于 2012-11-16T09:13:49.267 に答える
1

はい、dateの多くの形式を理解します-dが、連続して8桁の場合は、として解釈されYYYYmmddます。別の方法で読み取るように強制できるかどうかはわかりませんが、この場合は、awkまたはのsed代わりに次のような単純なエディターを使用できます。

$ OLD_DATE='08032011'
$ echo $OLD_DATE | sed -r 's/(.{2})(.{2})(.{4})/\3-\2-\1/'
2011-03-08

これはで動作しGNU sedます。入力をチェックしないことに注意してください(簡潔にするため)。

于 2012-11-16T09:16:25.510 に答える