GNU date
は、カスタムの日付形式を変換するための-f input_fmt
でサポートされていFreeBSD
バージョンとは異なり、日付のカスタム書式を許可していません。
GNU date
と操作のビットsed
で、あなたは何をしようとしているのかを達成することができます。
sed
mm-dd-yyyy
の入力日付をGNU date
の形式に変換するとわかります。
customDate=$(echo "12-09-2016 00:00:00" | sed 's/\([0-9]\{2\}\)\-\([0-9]\{2\}\)\-\([0-9]\{4\}\) \(.*\)/\3-\1-\2 \4/')
今customDate
はあなたが必要な日付を取得するために-d
フラグに渡すことができる形式2016-12-09 00:00:00
形式で日付を持っています。すなわち
date -d "$customDate" '+%d'
09
一時的な変数を使用せずに、これらの日を派手な「ワンライナー」と呼びます。
date -d "$(echo "12-09-2016 00:00:00" | sed 's/\([0-9]\{2\}\)\-\([0-9]\{2\}\)\-\([0-9]\{4\}\) \(.*\)/\3-\1-\2 \4/')" '+%d'
09
本当に日付を使用しますか?なぜあなたが望むものを抽出できないのですか?あなたは本当の例を与えて、あなたは何を期待できますか? – helloV
@Ali: 'mm-dd-yyyy'形式の入力日付に合わせて答えを修正しました。 – Inian