日付を次の形式で表示するために、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"