このエントリーをはてなブックマークに追加


dateコマンドで日付の先頭をスペースにしたり0にする方法

dateコマンドの書式設定で、日付を表示する方法に%dがあります。
日の書式 %d では、01~31 が返却されます。
月も同様で %m を指定するとでは、01~12 が返却されます。
これを 1~31 や _1~31 , 1~12 や _1~12 にする方法を以下に記します。
(本資料では、月と日を例にあげていますが、時分秒も同様の記述および動作になります。)


-(マイナス)をつけることにより、0を削除

以下に、日および月の例を記します。
オプション-sにより日付を指定し、書式にあわせた表示ができるので、-sオプションを併用し例を記します。

  • 通常
    $ date -s "1999/1/1 1:1:1" +"%Y/%m/%d %H:%M:%S"
    1999/01/01 01:01:01
     
  • マイナスをつけて先頭の0を削除する
    $ date -s "1999/1/1 1:1:1" +"%Y/%-m/%-d %H:%M:%S"
    1999/1/1 01:01:01

上記の出力例の通り、月日の0が削除されているのが確認できます。

  • 番外(時分秒)
    $ date -s "1999/1/1 1:1:1" +"%Y/%m/%d %-H:%-M:%-S"
    1999/01/01 1:1:1

_(アンダースコア)をつけることにより、0をスペースに変換

以下に、日および月の例を記します。
オプション-sにより日付を指定し、書式にあわせた表示ができるので、-sオプションを併用し例を記します。

  • 通常
    $ date -s "1999/1/1 1:1:1" +"%Y/%m/%d %H:%M:%S"
    1999/01/01 01:01:01
     
  • アンダースコアつけて先頭の0をスペースにする
    $ date -s "1999/1/1 1:1:1" +"%Y/%_m/%_d %H:%M:%S"
    1999/ 1/ 1 01:01:01
  • 番外(時分秒)
    $ date -s "1999/1/1 1:1:1" +"%Y/%_m/%_d %_H:%_M:%_S"
    1999/ 1/ 1  1: 1: 1

以上、dateコマンドの月日(時分秒)の先頭が0の場合、0削除、スペース変換をする方法でした。



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-09-06 (火) 10:08:18