Inilah solusi dengan find
+awk
find . -maxdepth 1 -type f -printf '%TY-%Tm-%Td\n' | awk '{array[$0]+=1}END{ for(val in array) print val" "array[val] }'
Pada dasarnya yang terjadi adalah kami menemukan semua file biasa dan mencetak waktu modifikasinya seperti yang ditentukan oleh %T
format, dan kemudian awk
mengambil alih, dan menghitung setiap baris menggunakan associate array. yang END{}
menggunakan pernyataan for
loop untuk pergi melalui semua elemen dalam array terkait, dan mencetak kunci + array [kunci] isi (yang merupakan tanggal + count).
Anda mungkin ingin menggunakan sort
untuk mengatur output, terutama sort -k 1
berdasarkan kolom 1 (yang tanggal), tetapi itu opsional. Juga -maxdepth 1
akan memeriksa file hanya di folder saat ini . Jika Anda ingin mencari file di subdirektori juga, hapus -maxdepth 1
bagian.
Output sampel
$ find . -maxdepth 1 -type f -printf '%TY-%Tm-%Td\n' | awk '{array[$0]+=1}END{ for(val in array) print val" "array[val] }'
2015-09-29 1
2016-04-06 2
2016-04-07 10
2016-04-08 2
2015-11-05 2
2016-04-22 2
2016-04-23 6
2016-04-24 1
2015-11-21 2
2015-11-22 2
109294
dan109294