[shell] 日付を便利に取得する

Pocket
LINEで送る
GREE にシェア
LinkedIn にシェア

shellコマンドの「date」には、そのへんのWEBプログラム言語に匹敵するぐらい便利なオプション機能がいくつもある。

以前、ミリ秒の取得を行なったが、今回は、現在時間を基準に、1時間前、1日前、1ヶ月前、1年前・・・
などという風に柔軟に取得することができる。

3時間前を取得

サンプル

-dをつけて’3 hour ago’とすると3時間前
他にも以下のようにセットできる
3日前:’3 day ago’
3ヶ月前:’3 month ago’
3年前:’3 year ago’
1ヶ月と10日前:’1 month ago 10 day ago’

サンプル2

前の日付だけでなく、後の日付を取得するには”ago”をつけなければいい
3日後:’3 day’
3ヶ月後:’3 month’
3年後:’3 year’
1ヶ月と10日後:’1 month 10 day’

対象ファイルの3日前より古いデータを削除

data_********.dat
(********は年月日が数値で入る)

remove_data.sh

世代バックアップの3日より古いデータを削除するような場合に使えます。
3日を3時間や3ヶ月などと変えると世代管理に柔軟に対応できますよ。

また、ファイル名は色々なパターンがあるのですが、ファイルのタイムスタンプを基準にすることも可能ですが、その際はawkの中身を変更して使ってください。

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です