フォルダ内のすべてのファイルに移動し、特定の日付にどのファイルが欠落しているかを確認したいと思います。
ファイルは時間ごとに分割され、ファイル名にはyyyy-mm-dd-hh
形式があります。
したがって、2017-07-01
との間には2017-07-02
24のファイルがあります。2017-07-01-00
2017-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