it-swarm-ja.com

日付出力から先行ゼロを削除する

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

2013.06.14.12.10.02

このコマンドを使用する:

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

出力から先頭のゼロを削除したい場合を除いて、すべてがうまくいきます。

フォーマットを変更することによってそれを実現する方法はありません。出力をsedawkのような他のコマンドにパイプすることによってのみ実行できると思います。

私が実行しているOSはUbuntu 12.04.2 LTSです。

46
easl

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
82
j883376

ばかげているように感じますが、この質問には/sedのタグが付けられているため、sedを使用してこれを行う方法は次のとおりです。

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