使用日

使用日

やるべきことがあり、論理を考えることができますが、Unixでは実装できません。

命名パターンが「mmddyy」のサブディレクトリを持つディレクトリがあります。だからここで私の使命は、X日より古いすべてのディレクトリを削除することです。問題の日付スタンプは、Unixタイムスタンプではなく、ディレクトリ名で表示される日付スタンプです。

私のアプローチ:

  1. 配列のディレクトリ名のリストを取得する
  2. (SYSDATE - 配列> 30)の場合は、Elseを削除して続行します。

Unixを使用してどのように解決しますか?

ベストアンサー1

ファイルの日付の詳細をyy-mm-ddに再フォーマットし、エポックの後の日付と秒を使用します。

X = 30 - 30日前

epc=$(date -d -"$X"days +%s)

epc は、確認する参照エポック文字列です。

次に、ファイル名の日付を処理します。

ファイル名の日付例

 dat="010188" 
 dat1=awk '{print substr($0,5,2)"-"substr($0,3,2)"-"substr($0,1,2)}' <<< $dat
 refepc=$(date -d "$dat1" +%s)

refepcは、epcと比較して確認できる参照エポックです。

おすすめ記事