dateコマンドで日付の先頭をスペースにしたり0にする方法 †
dateコマンドの書式設定で、日付を表示する方法に%dがあります。
日の書式 %d では、01~31 が返却されます。
月も同様で %m を指定するとでは、01~12 が返却されます。
これを 1~31 や _1~31 , 1~12 や _1~12 にする方法を以下に記します。
(本資料では、月と日を例にあげていますが、時分秒も同様の記述および動作になります。)
-(マイナス)をつけることにより、0を削除 †
以下に、日および月の例を記します。
オプション-sにより日付を指定し、書式にあわせた表示ができるので、-sオプションを併用し例を記します。
上記の出力例の通り、月日の0が削除されているのが確認できます。
_(アンダースコア)をつけることにより、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削除、スペース変換をする方法でした。