その日にファイルとカウントがない場合にカウントをゼロにするUnixコマンド

その日にファイルとカウントがない場合にカウントをゼロにするUnixコマンド

ファイルが受信されなかった後の日付のリストを取得する方法。ファイル数と日付を取得するには、次のコマンドを使用します。

find . -maxdepth 1 -type f -printf '%TY-%Tm-%Td\n' | awk '{array[$0]+=1}END{ for(val in array) print val" "array[val]   }'|sort

出力:

2019-05-09 1
2019-05-10 3
2019-05-13 2
2019-05-14 5
2019-05-15 1
2019-05-16 2
2019-05-17 1
2019-05-20 2

また、欠落している日付をゼロとして計算する必要があります。たとえば、

2019-05-12 0

ベストアンサー1

次のコードを試してください。

TIME_STAMP=(`find . -maxdepth 1 -type f -printf '%TY-%Tm-%Td\n' | sort | sed -e 1b -e '$!d'`)
LIST ()
{
        date1=$1
        date2=`date -d "$date1 + 1 day" +"%Y-%m-%d"`
        find . -maxdepth 1 -type f -newermt $date1 ! -newermt $date2 | echo "$date1 `wc -l` "
        [ $date1 == $2 ] && exit 0;
        LIST $date2 $2
}
LIST ${TIME_STAMP[0]} ${TIME_STAMP[1]}

おすすめ記事