日付出力から先行ゼロを削除します。

日付出力から先行ゼロを削除します。

日付を次の形式で表示するために、dateコマンドのエイリアスを作成しました。

2013.06.14.12.10.02

次のコマンドを使用します。

alias date = date +"%Y.%m.%d.%H.%M.%S"

出力から先行ゼロを削除することを除いて、すべてが正常です。

形式を変更してこれを達成する方法はありません。私はこれが出力を、sedなどの他のコマンドにパイプしなければならないと思いますawk

私が実行しているオペレーティングシステムはUbuntu 12.04.2 LTSです。

答え1

GNUのdateマニュアルページによると:

   By default, date  pads  numeric  fields  with  zeroes.   The  following
   optional flags may follow '%':

   -      (hyphen) do not pad the field

したがって、あなたはできます

alias date="date '+%Y.%-m.%-d.%-H.%-M.%-S'"

そして受け取った

2013.6.14.3.19.31

答え2

愚かなようですが、この質問にはタグが付けられているので、/sed前述のようにsedを使用してこれを行う方法があります。 :)

alias date='date +"%Y.%m.%d.%H.%M.%S" | sed "s/^0*//g; s/\.0*/./g"'

以下のコメントに注意してください。削除*と最初のsed式のオプションを削除するためのg非常に有効なポイントがあります。テストせずに上に書いた内容を修正したくなく、今は時間もありません。以下のScottのコメントは、この回答に常識を取り入れています。

答え3

XFCEは0前の時間をnoに設定します。

%l:%M %p

答え4

を使用すると、printfある程度の柔軟性を得ることができます。

たとえば、

/usr/bin/date "+%b %-2d %-H" | xargs printf "%s %2d %02d"

関連情報