特定の日付範囲内で見つからないファイルを見つける方法は?

特定の日付範囲内で見つからないファイルを見つける方法は?

フォルダ内のすべてのファイルに移動し、特定の日付にどのファイルが欠落しているかを確認したいと思います。

ファイルは時間ごとに分割され、ファイル名にはyyyy-mm-dd-hh形式があります。

したがって、2017-07-01との間には2017-07-0224のファイルがあります。2017-07-01-002017-07-01-23

上記の日付を開始日と終了日として使用した場合、欠落している時間別のファイルをどのように見つけることができますか?

コメントありがとうございます!

ベストアンサー1

# presuming that the files are e. g. template-2017-07-01-16:

# To test a given date
for file in template-2017-07-01-{00..23}; do
  if ! [[ -f "$file" ]]; then
    echo "$file is missing"
  fi
done

# To test a given year
year=2017
for month in seq -w 1 12; do
    dim=$( cal $( date -d "$year-$month-01" "+%m %Y" | awk 'NF { days=$NF} END {print days}' )
    for day in $(seq -w 1 $dim); do
        for file in template-${year}-${month}-${day}-{00..23}; do
           if ! [[ -f "$file" ]]; then
             echo "$file is missing"
           fi
        done
    done
done

おすすめ記事